.68000
ram_start equ 0xff0000
  TMSS_REG equ 0xa14000
  HW_VERSION equ 0xa10001
  VDP_DATA equ 0xc00000
  VDP_CTRL equ 0xc00004
  Z80_RAM equ 0xa00000
  Z80_BUSREQ equ 0xa11100
  Z80_RESET equ 0xa11200

  ;-------------------------------:
  ; exception vectors
  ;-------------------------------:

  dc32 0x00000000   ; startup SP
  dc32 start        ; startup PC
  dc32 interrupt    ; bus
  dc32 interrupt    ; addr
  dc32 interrupt    ; illegal
  dc32 interrupt    ; divzero
  dc32 interrupt    ; CHK
  dc32 interrupt    ; TRAPV
  dc32 interrupt    ; priv
  dc32 interrupt    ; trace
  dc32 interrupt    ; line 1010 emulator
  dc32 interrupt    ; line 1111 emulator
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt
  dc32 interrupt    ; spurious interrupt
  dc32 interrupt    ; interrupt level 1 (lowest priority)
  dc32 extint       ; interrupt level 2 = external interrupt
  dc32 interrupt    ; interrupt level 3
  dc32 hsync        ; interrupt level 4 = H-sync interrupt
  dc32 interrupt    ; interrupt level 5
  dc32 vsync        ; interrupt level 6 = V-sync interrupt
  dc32 interrupt    ; interrupt level 7 (highest priority)
  dc32 interrupt    ; TRAP #00 exception
  dc32 interrupt    ; TRAP #01 exception
  dc32 interrupt    ; TRAP #02 exception
  dc32 interrupt    ; TRAP #03 exception
  dc32 interrupt    ; TRAP #04 exception
  dc32 interrupt    ; TRAP #05 exception
  dc32 interrupt    ; TRAP #06 exception
  dc32 interrupt    ; TRAP #07 exception
  dc32 interrupt    ; TRAP #08 exception
  dc32 interrupt    ; TRAP #09 exception
  dc32 interrupt    ; TRAP #10 exception
  dc32 interrupt    ; TRAP #11 exception
  dc32 interrupt    ; TRAP #12 exception
  dc32 interrupt    ; TRAP #13 exception
  dc32 interrupt    ; TRAP #14 exception
  dc32 interrupt    ; TRAP #15 exception
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)
  dc32 interrupt    ; Unused (reserved)

  ;-------------------------------:
  ; cartridge info header
  ;-------------------------------:

  dc.b "SEGA GENESIS    "  ; must start with "SEGA"
  dc.b "(C)---- "          ; copyright
  dc.b "2015.MAY"          ; date
  dc.b "JAVA GRINDER                                    " ; cart name
  dc.b "JAVA GRINDER                                    " ; cart name (alt. language)
  dc.b "GM MK-0000 -00"    ; program type / catalog number
  dc.w 0x0000                ; ROM checksum
  dc.b "J               "  ; hardware used
  dc32 0x00000000            ; start of ROM
  dc32 0x003fffff            ; end of ROM
  dc32 0x00ff0000,0x00ffffff ; RAM start/end
  dc.b "            "      ; backup RAM info
  dc.b "            "      ; modem info
  dc.b "                                        " ; comment
  dc.b "JUE             "  ; regions allowed

  ;-------------------------------:
  ; exception handlers
  ;-------------------------------:

extint:
hsync:
vsync:
interrupt:
  rte

pattern equ ram_start+0
palette equ ram_start+4
ImageJava_image equ ram_start+8
ImageJava_palette equ ram_start+12
ImageJava_pattern equ ram_start+16
start:
  movea.l #0x0, SP

  ; Setup registers used to talk to VDP
  movea.l #VDP_DATA, a0
  movea.l #VDP_CTRL, a1

  ; During initialization:
  ; d0 = 0
  ; d1 = data movement
  ; d2 = counter
  eor.l d0, d0

  ; Initialize TMSS
  movea.l #HW_VERSION, a2
  movea.l #TMSS_REG, a3
  move.b (a2), d1           ; A10001 test the hardware version
  andi.b #0x0f, d1
  beq.b start_init_tmss     ; branch if no TMSS
  move.l #0x53454741, (a3)  ; A14000 disable TMSS
start_init_tmss:
  move.w (a1), d1    ; C00004 read VDP status (interrupt acknowledge?)

  ; Initialize video
  movea.l #vdp_reg_init_table, a2
  move.w #0x8000, d1
  moveq #24-1, d2   ; length of video initialization block
start_video_init:
  move.b (a2)+, d1  ; get next video control byte
  move.w d1, (a1)   ; C00004 send write register command to VDP
  add.w #0x100, d1  ; point to next VDP register
  dbra d2, start_video_init  ; loop for rest of block

  ; DMA is now set up for 65535-byte fill of VRAM
  move.l #0x40000080, (a1)  ; C00004 = VRAM write to 0x0000
  move.w d0, (a0)      ; C00000 = write zero to VRAM (starts DMA fill)
  ; Wait on busy VDP
start_wait_dma:
  move.w (a1), d1      ; C00004 read VDP status
  btst #1, d1        ; test DMA busy flag
  bne.s start_wait_dma ; loop while DMA busy

  ; initialize CRAM
  move.l #0x81048f02, (a1) ; C00004 reg 1 = 0x04, reg 15 = 0x02: blank, auto-increment=2
  move.l #0xc0000000, (a1) ; C00004 write CRAM address 0x0000
  moveq #32-1, d2          ; loop for 32 CRAM registers
start_init_cram:
  move.l d0, (a0)          ; C00000 clear CRAM register
  dbra d2, start_init_cram

  ; Initialize VSRAM
  move.l #0x40000010, (a1) ; C00004 VSRAM write address 0x0000
  moveq #20-1, d2          ; loop for 20 VSRAM registers
start_init_vsram:
  move.l d0, (a0)          ; C00000 clear VSRAM register
  dbra d2, start_init_vsram

  ; Initialize PSG
  moveq #4-1, d2             ; loop for 4 PSG registers
  movea.l #psg_reg_init_table, a2
start_init_psg:
  move.b (a2)+, (0x0011, a0) ; C00011 copy PSG initialization commands
  dbra d2, start_init_psg

  ; Unblank display
  move.w #0x8144, (a1)   ; C00004 reg 1 = 0x44 unblank display

  ;; Setup heap and static initializers
  movea.l #ram_start+20, a5
  move.l #_pattern, (pattern)
  move.l #_palette, (palette)
  move.l #_ImageJava_pattern, (ImageJava_pattern)
  move.l #_ImageJava_image, (ImageJava_image)
  move.l #_ImageJava_palette, (ImageJava_palette)

main:
  link a6, #-0x34
  // setPalettePointer(49)
  move.l #0xc0620000, (a1) ; Set CRAM write address
  move.w #0xeee, (a0)      ; setPaletteColor()
  jsr (_load_fonts).l
  jsr (_clear_text).l
  moveq #0, d0
  move.l d0, (-8,a6)
  moveq #0, d0
  move.l d0, (-12,a6)
  moveq #1, d0
  move.l d0, (-16,a6)
  moveq #0, d0
  move.l d0, (-20,a6)
  moveq #0, d0
  move.l d0, (-24,a6)
  move.l #0x10e, d0
  move.l d0, (-36,a6)
  move.l #0xe6, d0
  move.l d0, (-40,a6)
  moveq #1, d0
  move.l d0, (-48,a6)
  ;; invoke_static_method() name=ImageJava_run params=0 is_void=1
  jsr ImageJava_run
  moveq #16, d0
  movea.l #palette, a2
  move.l (a2), d1
  movea.l d1, a3
  jsr (_set_palette_colors_at_index).l
  move.l #0x460, d1
  movea.l #pattern, a2
  move.l (a2), d2
  movea.l d2, a3
  move.l d1, d7
  jsr (_set_pattern_table).l
  moveq #0, d1
  move.l #0x10e, d2
  move.l #0xe6, d3
  ;; setSpritePosition()
  asl.w #3, d1
  swap d1
  move.l #0x58000003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d3, (a0)
  add.l #0x00060000, d5
  move.l d5, (a1)
  move.w d2, (a0)
  moveq #0, d1
  move.l #0x700, d2
  ;; setSpriteConfig1()
  asl.w #3, d1
  swap d1
  move.l #0x58020003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d2, (a0)
  moveq #0, d1
  move.l #0x2460, d2
  ;; setSpriteConfig2()
  asl.w #3, d1
  swap d1
  move.l #0x58040003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d2, (a0)
main_86:
  move.l (-16,a6), d1
  cmp.l #0, d1
  beq.w main_265  ; distance=85
  ;; Read from joypad 1
  move.b #0x40, (0xa10009) ; Set direction
  move.b #0x40, (0xa10003) ; TH=1
  move.b (0xa10003), d1
  and.l #0xff, d1
  move.b #0x00, (0xa10003) ; TH=0
  move.b (0xa10003), d5
  and.l #0xff, d5
  lsl.l #8, d5
  or.l d5, d1
  eori.w #0xffff, d1
  move.l d1, (-8,a6)
  move.l (-12,a6), d1
  cmp.l #0, d1
  bne.w main_225  ; distance=64
  moveq #0, d1
  move.l d1, (-52,a6)
main_101:
  move.l (-52,a6), d1
  move.l #0xf000, d2
  cmp.l d2, d1
  bgt.w main_225  ; distance=59
  move.l (-8,a6), d1
  move.l (-52,a6), d2
  add.l #129, d2
  cmp.l d2, d1
  bne.s main_135  ; distance=10
  moveq #0, d1
  move.l (-36,a6), d2
  move.l (-40,a6), d3
  move.l (-48,a6), d4
  sub.l d4, d3
  ;; dup
  move.l d3, d4
  move.l d4, (-40,a6)
  ;; setSpritePosition()
  asl.w #3, d1
  swap d1
  move.l #0x58000003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d3, (a0)
  add.l #0x00060000, d5
  move.l d5, (a1)
  move.w d2, (a0)
  bra.w main_225  ; distance=45
main_135:
  move.l (-8,a6), d1
  move.l (-52,a6), d2
  add.l #130, d2
  cmp.l d2, d1
  bne.s main_162  ; distance=10
  moveq #0, d1
  move.l (-36,a6), d2
  move.l (-40,a6), d3
  move.l (-48,a6), d4
  add.l d4, d3
  ;; dup
  move.l d3, d4
  move.l d4, (-40,a6)
  ;; setSpritePosition()
  asl.w #3, d1
  swap d1
  move.l #0x58000003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d3, (a0)
  add.l #0x00060000, d5
  move.l d5, (a1)
  move.w d2, (a0)
  bra.w main_225  ; distance=31
main_162:
  move.l (-8,a6), d1
  move.l (-52,a6), d2
  add.l #132, d2
  cmp.l d2, d1
  bne.s main_189  ; distance=10
  moveq #0, d1
  move.l (-36,a6), d2
  move.l (-48,a6), d3
  sub.l d3, d2
  ;; dup
  move.l d2, d3
  move.l d3, (-36,a6)
  move.l (-40,a6), d3
  ;; setSpritePosition()
  asl.w #3, d1
  swap d1
  move.l #0x58000003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d3, (a0)
  add.l #0x00060000, d5
  move.l d5, (a1)
  move.w d2, (a0)
  bra.s main_225  ; distance=17
main_189:
  move.l (-8,a6), d1
  move.l (-52,a6), d2
  add.l #136, d2
  cmp.l d2, d1
  bne.s main_216  ; distance=10
  moveq #0, d1
  move.l (-36,a6), d2
  move.l (-48,a6), d3
  add.l d3, d2
  ;; dup
  move.l d2, d3
  move.l d3, (-36,a6)
  move.l (-40,a6), d3
  ;; setSpritePosition()
  asl.w #3, d1
  swap d1
  move.l #0x58000003, d5
  add.l d1, d5
  move.l d5, (a1)
  move.w d3, (a0)
  add.l #0x00060000, d5
  move.l d5, (a1)
  move.w d2, (a0)
  bra.s main_225  ; distance=3
main_216:
  add.l #256, (-52,a6)
  bra.w main_101  ; distance=60
main_225:
  moveq #0, d1
  move.l d1, (-52,a6)
main_228:
  move.l (-52,a6), d1
  move.l #0xf000, d2
  cmp.l d2, d1
  bgt.s main_262  ; distance=12
  move.l (-8,a6), d1
  move.l (-52,a6), d2
  add.l #128, d2
  cmp.l d2, d1
  bne.s main_253  ; distance=5
  jsr (_clear_text).l
  moveq #0, d1
  move.l d1, (-12,a6)
  bra.s main_262  ; distance=3
main_253:
  add.l #256, (-52,a6)
  bra.s main_228  ; distance=13
main_262:
  bra.w main_86  ; distance=85
main_265:
  unlk a6
  rts

.align 32
  dc32 64   ; pattern.length
_pattern:
  dc32 0x0122, 0x12210, 0x121000, 0x1210000, 0x2100000, 0x2100000, 0x12000000, 0x21000000
  dc32 0x27777777, 0x27777777, 0x27727777, 0x27727777, 0x27727777, 0x27727777, 0x27727727, 0x27727727
  dc32 0x27727727, 0x27727727, 0x21727727, 0x12127727, 0x1227727, 0x27727, 0x27727, 0x27727
  dc32 0x27727, 0x27727, 0x22727, 0x22727, 0x2227, 0x0027, 0x0022, 0x0002
  dc32 0x22210000, 0x121000, 0x12230, 0x0120, 0x0021, 0x0021, 0x0012, 0x0002
  dc32 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x2000002, 0x2772772
  dc32 0x2772772, 0x2772772, 0x2772772, 0x2772772, 0x2772772, 0x2772772, 0x2772772, 0x2772774
  dc32 0x2772122, 0x2772210, 0x2772777, 0x2772777, 0x2712777, 0x2223777, 0x2777777, 0x22777777


.align 32
  dc32 16   ; palette.length
_palette:
  dw 0x0aaa, 0x0888, 0x0442, 0x0000, 0x0444, 0x0222, 0x0644, 0x0eee
  dw 0x0666, 0x0ccc, 0x0006, 0x042a, 0x086a, 0x0208, 0x0000, 0x0000


.align 32
  dc32 5312   ; ImageJava_pattern.length
_ImageJava_pattern:
  dc32 0x1111203, 0x21111405, 0x11111025, 0x11112035, 0x11114455, 0x11110255, 0x11120355, 0x11140555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55555544, 0x55555520, 0x55555530, 0x55555554, 0x55555556, 0x55555553, 0x55555555, 0x55555555
  dc32 0x12066666, 0x11026666, 0x21076666, 0x41446666, 0x1406666, 0x2706666, 0x44206666, 0x20202666
  dc32 0x11102555, 0x11203555, 0x11075555, 0x12065555, 0x14035555, 0x10455555, 0x10255555, 0x20355555
  dc32 0x30402666, 0x50402666, 0x54002666, 0x52002666, 0x53002666, 0x55402666, 0x55202666, 0x55602666
  dc32 0x7555555, 0x6555555, 0x3555555, 0x85555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55675555, 0x55305555, 0x55546555, 0x55529555
  dc32 0x55304666, 0x55540666, 0x55580266, 0x55530966, 0x55550462, 0x55554462, 0x55557062, 0x55552022
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55553333, 0x53333333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555, 0x33555555
  dc32 0x55555555, 0x55555333, 0x55553333, 0x55533333, 0x55333333, 0x55333333, 0x53333332, 0x53333320
  dc32 0x55555555, 0x55555555, 0x33555555, 0x33355555, 0x33335555, 0x33335555, 0x33333555, 0x33333555
  dc32 0x55564555, 0x55564555, 0x55534555, 0x555a4555, 0x55564555, 0x55567555, 0x55567555, 0x55522555
  dc32 0x55552022, 0x55556022, 0x55553072, 0x55553072, 0x55553042, 0x55555042, 0x55555442, 0x55555702
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x33555555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555533
  dc32 0x55555553, 0x55555333, 0x55553333, 0x55333333, 0x53333331, 0x33333311, 0x33333111, 0x33331111
  dc32 0x33333333, 0x33333333, 0x33333333, 0x31111333, 0x11111113, 0x11111111, 0x11111111, 0x11111111
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x13333333, 0x11333333
  dc32 0x33335555, 0x33333555, 0x33333555, 0x33333555, 0x33333555, 0x33333555, 0x33333555, 0x33333555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555555
  dc32 0x53333320, 0x33333320, 0x33333320, 0x33333320, 0x333333b0, 0x33333110, 0x33333114, 0x33333112
  dc32 0x33333355, 0x11333335, 0xb11333b2, 0xb1111744, 0x211b4021, 0x71204b13, 0x4b04b113, 0x4b1111
  dc32 0x55555533, 0x36276333, 0x40440333, 0x2b110633, 0x13330233, 0x3333703b, 0x333320b0, 0x33333047
  dc32 0x33542555, 0x33108555, 0x33705555, 0x370b5555, 0x20255555, 0x2355537, 0x73555642, 0x83567085
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x66555555, 0x45555555, 0x35555555, 0x55555555
  dc32 0x55555202, 0x55555202, 0x55555809, 0x55555307, 0x55555544, 0x55555574, 0x55555520, 0x55555560
  dc32 0x55555533, 0x55555333, 0x55553333, 0x55554333, 0x55550633, 0x55557233, 0x55552433, 0x55538033
  dc32 0x33335555, 0x33333555, 0x33333335, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x33555555, 0x33355555, 0x33335555, 0x33333355
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555533, 0x55555533, 0x55555533, 0x55555533
  dc32 0x55555533, 0x55333333, 0x53333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33333335, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55555555, 0x35555555, 0x33555555, 0x33355555, 0x33335555, 0x33333555, 0x33333355, 0x33333335
  dc32 0x55555533, 0x55555333, 0x55553333, 0x55553333, 0x55533331, 0x55333311, 0x5533b211, 0x53337711
  dc32 0x33311111, 0x33111111, 0x31111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11333333, 0x11333333, 0x11133333, 0x11333333, 0x11333333, 0x11333333, 0x11333333, 0x11333333
  dc32 0x33333555, 0x33333555, 0x33333555, 0x33335555, 0x33335555, 0x33335555, 0x33355555, 0x33555555
  dc32 0x55555553, 0x55555553, 0x55555533, 0x55555533, 0x55555533, 0x55555533, 0x55555553, 0x55555553
  dc32 0x3333311b, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333331, 0x33333331, 0x33333333
  dc32 0x40b11111, 0x20b11111, 0xb4011111, 0x1b071111, 0x11b07111, 0x11170711, 0x111b7071, 0x1111b707
  dc32 0x13333078, 0x11333447, 0x11333202, 0x11113208, 0x11113106, 0x11111342, 0x11111370, 0x111113b0
  dc32 0x33742355, 0x44785555, 0x78355555, 0x35555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555
  dc32 0x55555580, 0x55555530, 0x55555530, 0x55555550, 0x55555554, 0x55555557, 0x55555557, 0x55555557
  dc32 0x55533423, 0x55533703, 0x55533b02, 0x55533370, 0x555333b0, 0x55533337, 0x55533331, 0x55553333
  dc32 0x33333333, 0x33333333, 0x31113333, 0x11111333, 0x71111133, 0x2111113, 0x207b1111, 0x324472b1
  dc32 0x33333335, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x11333333
  dc32 0x55555555, 0x55555555, 0x33555555, 0x33333555, 0x33333355, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x33555555, 0x33333555
  dc32 0x33333333, 0x33333333, 0x53333333, 0x55333333, 0x55333333, 0x55533333, 0x55533333, 0x55533333
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333331, 0x33333111, 0x33333111, 0x33331111, 0x33331111
  dc32 0x33333335, 0x7b333333, 0x74333333, 0xb0233333, 0x17033333, 0x1b0b3333, 0x11473333, 0x11703333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555, 0x35555553, 0x35555553, 0x35555553
  dc32 0x533b02bb, 0x53320bbb, 0x33307bbb, 0x33b0bbbb, 0x3374bbbb, 0x3307bbbb, 0x3b02bbbb, 0x370bbbbb
  dc32 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x13333333, 0x13333333, 0x13333333, 0x13333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33335555, 0x33335555, 0x33335555, 0x33335555, 0x33555555, 0x33355555, 0x33555555, 0x33335555
  dc32 0x33333333, 0x33333333, 0x53333333, 0x55333333, 0x55333333, 0x55533333, 0x55553333, 0x55555533
  dc32 0x31111b70, 0x311111b7, 0x3311111b, 0x33311111, 0x33331111, 0x33333311, 0x33333331, 0x33333333
  dc32 0x41111334, 0x4b1133b, 0xb4471333, 0x1b704213, 0x11bb704b, 0x1111b244, 0x111111b2, 0x31111111
  dc32 0x25555555, 0x3555555, 0x2555555, 0x70355555, 0x10255555, 0x47935555, 0x404b3555, 0xb7047355
  dc32 0x55555554, 0x55555554, 0x55555554, 0x55555550, 0x55555550, 0x55555530, 0x55555560, 0x55555560
  dc32 0x55553336, 0x53777444, 0x55b772bb, 0x55388833, 0x55533333, 0x55555333, 0x55555533, 0x55555555
  dc32 0x27474444, 0x97bbbb27, 0x8111111b, 0x33311111, 0x33311111, 0x33331111, 0x33333111, 0x33333311
  dc32 0x7b133333, 0x447b3333, 0xb7442333, 0x1bb74733, 0x111b70b1, 0x1111b741, 0x11111b02, 0x11111174
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x11333333, 0x11111333, 0xb1111111
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x11111111
  dc32 0x35555555, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x111b7723
  dc32 0x55555555, 0x55555555, 0x33333555, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555, 0x33555555, 0x33555555, 0x33355555
  dc32 0x55553333, 0x55553333, 0x55555333, 0x55555333, 0x55555533, 0x55555533, 0x55555553, 0x55555553
  dc32 0x33331111, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33333111
  dc32 0x11b0b333, 0x11107333, 0x11144333, 0x11170333, 0x111b0b33, 0x11114233, 0x11114433, 0x11117033
  dc32 0x33555533, 0x33555333, 0x33555333, 0x33555333, 0x3355333b, 0x33553332, 0x33353334, 0x33333330
  dc32 0x307bbbbb, 0xb0bbbbbb, 0x74bbbbbb, 0x7bbbbbb, 0x2bbbbbb, 0xbbbbbb1, 0x4bbbbbb1, 0x7bbbbbb1
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33335555, 0x33335555, 0x33335555, 0x33333555, 0x33333555, 0x33333555, 0x33333555, 0x33333355
  dc32 0x55555553, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33333333, 0x53333333, 0x55533333, 0x55555333, 0x55555553, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33111111, 0x33311111, 0x33333111, 0x33333311, 0x33333311, 0x33333331, 0x33333333, 0x53333333
  dc32 0x1bb70423, 0x111bb707, 0x11111b24, 0x1111111b, 0x11111111, 0x11111111, 0x11111111, 0x31111111
  dc32 0x55555555, 0x65555555, 0x42355555, 0x70765555, 0xb2442355, 0x11b70735, 0x111b7043, 0x1111b247
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x65555555
  dc32 0x55555524, 0x55555547, 0x55555502, 0x5555530b, 0x55555201, 0x55555401, 0x55555003, 0x55553043
  dc32 0x53333331, 0x53333333, 0x55533333, 0x55533333, 0x55533333, 0x55553333, 0x55553333, 0x55553333
  dc32 0x111111b0, 0x11111114, 0x11111117, 0x31111112, 0x33111112, 0x33111112, 0x33111112, 0x33311117
  dc32 0xb1111111, 0x71111111, 0x41111111, 0x1111111, 0x1111111, 0x11111bb, 0x111bbbb, 0xbbbbbbb
  dc32 0x11111111, 0x11111111, 0x11111111, 0x111b11b7, 0xbbbbbb70, 0xbbbb2442, 0xbbb747b3, 0xbb707111
  dc32 0x11240407, 0x1244b8b0, 0x70783337, 0x713333b, 0x21333317, 0x13331b74, 0x1111747b, 0x11b70783
  dc32 0x33333333, 0x733b3333, 0x3741333, 0x477b3333, 0x7833333, 0x21333333, 0x33333333, 0x33333335
  dc32 0x33355555, 0x33355555, 0x33355555, 0x33555555, 0x33555555, 0x35555555, 0x55555555, 0x55555555
  dc32 0x55555533, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555555, 0x55555555
  dc32 0x33333111, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311
  dc32 0x111120b3, 0x111bb0b3, 0x111bb073, 0x111bb441, 0x111bb401, 0x111bb701, 0x111bb20b, 0x111bbb0b
  dc32 0x33333330, 0x333333b0, 0x333333b0, 0x13333320, 0x13333394, 0x13333344, 0x13333107, 0x13333107
  dc32 0x2bbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1, 0xbbbbbbb1
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x13333333
  dc32 0x33333355, 0x33333355, 0x33333335, 0x33333335, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x55333333, 0x55333333, 0x55333333, 0x55333333, 0x53333333, 0x53333333, 0x53333333, 0x53333333
  dc32 0x31111111, 0x33111111, 0x33111111, 0x33311111, 0x33311111, 0x33311111, 0x33331111, 0x33331111
  dc32 0x1111bbb0, 0x1111bbb7, 0x1111bbbb, 0x1111bbbb, 0x11111bbb, 0x11111bbb, 0x11111bbb, 0x11111bbb
  dc32 0x43555555, 0x7355555, 0x70235555, 0xb4465555, 0xbb443555, 0xbb202555, 0xbbb44655, 0xbbbb0462
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x63555555
  dc32 0x55556043, 0x55552073, 0x55550023, 0x555300b3, 0x55520013, 0x55540013, 0x55500413, 0x55300713
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555556, 0x55555324, 0x55553702
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x53866627, 0x77444444, 0x472bbbbb, 0xb1333333
  dc32 0x55555333, 0x55555333, 0x55555333, 0x55553333, 0x77777777, 0x77777777, 0x11111111, 0x33333331
  dc32 0x33311114, 0x333111b0, 0x33111b20, 0x3bbb2240, 0x77744404, 0x772bbbbb, 0x11111111, 0x11111111
  dc32 0x4bbbbbbb, 0x7bbb277b, 0xbbb74407, 0x77707b27, 0x4772b11b, 0xbbb1111b, 0x1111b774, 0x11b74442
  dc32 0xb74b1111, 0x74b11111, 0xbb1111b7, 0x11111b44, 0x111bb22b, 0xb7747883, 0x7772b333, 0xb8833333
  dc32 0x1b442133, 0x747b3333, 0x2833333, 0x23333333, 0x33333333, 0x33333355, 0x33333555, 0x33355555
  dc32 0x33333555, 0x33333555, 0x33355555, 0x33555555, 0x55555555, 0x55555555, 0x55555555, 0x553a8666
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x66666666
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x68355555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555553, 0x55555553, 0x55555553
  dc32 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311
  dc32 0x1111bb02, 0x1111bb02, 0x1111bb49, 0x1111bb44, 0x1111bb44, 0x1111bb44, 0x11111b44, 0x11111b74
  dc32 0x13333b02, 0x13333b02, 0x13333b02, 0x13333b02, 0x13333b02, 0x13333b02, 0x13333b02, 0x11333b02
  dc32 0xbbbbbbb1, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0x13333333, 0x13333333, 0x13333333, 0x13333333, 0x13333333, 0x13333333, 0x11333333, 0x11333333
  dc32 0x35555555, 0x33555555, 0x33555555, 0x33355555, 0x33335555, 0x33335555, 0x33333555, 0x33333355
  dc32 0x55555555, 0x55555555, 0x55555553, 0x55555553, 0x55555533, 0x55555333, 0x55555333, 0x55553333
  dc32 0x33331111, 0x33331111, 0x33331111, 0x33331111, 0x33333111, 0x33333111, 0x33333116, 0x3333329c
  dc32 0x111111bb, 0x111111bb, 0x111111bb, 0x111111bb, 0x1111127d, 0x11b2deec, 0x29dced49, 0xecd49222
  dc32 0xbbbb7042, 0xbbbbb40b, 0xbbb7dee7, 0x24deecee, 0xecd4499e, 0xd479999c, 0x92297799, 0x22222792
  dc32 0x47235555, 0xb7473555, 0x31b47555, 0xb33b0255, 0xd3337435, 0xe2338025, 0xec333745, 0xce633b08
  dc32 0x55200213, 0x55900213, 0x55400b13, 0x55000113, 0x53004113, 0x56004113, 0x52007113, 0x54002113
  dc32 0x35555555, 0x75555555, 0x5555555, 0x5555555, 0x3555555, 0x6555555, 0x42555555, 0x24555555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555558, 0x55555534
  dc32 0x555374b1, 0x55520b33, 0x55202333, 0x58471333, 0x34413333, 0x20b33333, 0x7333333, 0x41333333
  dc32 0x33333333, 0x33333333, 0x33333331, 0x33333111, 0x33311111, 0x33111111, 0x31111111, 0x31111111
  dc32 0x33331111, 0x33111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111117, 0x11111170
  dc32 0x11111111, 0x111111b7, 0x1111b744, 0x1117442b, 0x1b707211, 0x7442b129, 0x7229dec, 0x794cedd9
  dc32 0xb7442b83, 0x442b3333, 0x22133333, 0x1133129d, 0x1224dccc, 0xdcecd999, 0xdd992222, 0x29222222
  dc32 0x33333333, 0x33333629, 0x6294dcdc, 0xcccd9999, 0xd9922626, 0x22262286, 0x26228266, 0x22226222
  dc32 0x33a86299, 0x9dcccccc, 0xcd949299, 0x22686666, 0x62662266, 0x26826828, 0x66666666, 0x62222622
  dc32 0x9ddcdddd, 0xc44d9999, 0x62686268, 0x66666666, 0x26622622, 0x66262288, 0x66666666, 0x26666626
  dc32 0x9dddddd4, 0x69999992, 0x66866626, 0x66666666, 0x66666266, 0x2a66a66a, 0x86666666, 0x62622262
  dc32 0xdddd4999, 0x999ddccc, 0xa6666966, 0x66866666, 0x26662622, 0x86236686, 0x66666662, 0x26626622
  dc32 0x99999666, 0xccceccdc, 0x26999994, 0x666666a6, 0x66266266, 0x66626362, 0x66666666, 0x62666666
  dc32 0x83555555, 0xcd4996a3, 0x994dcddd, 0x66229999, 0x26662662, 0x666a66a6, 0x66666666, 0x62622622
  dc32 0x55555555, 0x55555555, 0x4996a355, 0x99cdcd99, 0x66994dcc, 0x26366699, 0x66666626, 0x66266266
  dc32 0x55555555, 0x55555555, 0x55555555, 0x6a555555, 0xcd496855, 0x99ddccd9, 0x6662994c, 0x26662229
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x63555555, 0xcd968555, 0x9ddcc923
  dc32 0x55555555, 0x55555555, 0x55555553, 0x55555553, 0x55555533, 0x55555533, 0x55555333, 0x55555333
  dc32 0x33333311, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33331111, 0x33331111
  dc32 0x11111b70, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20
  dc32 0xb1333b09, 0xb1331104, 0xb1331144, 0xb1331170, 0xb1331120, 0xb1331120, 0xb13311b0, 0xb1331110
  dc32 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0x2bbbbbbb, 0x2bbbbbbb
  dc32 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xbb111111, 0xbb111111, 0xbb111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x1111111b, 0x1111624d
  dc32 0x11333333, 0x11333333, 0x11133333, 0x11133333, 0x11133333, 0x11111629, 0x2294dccc, 0xceccd49d
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33366662, 0x4ddcccce, 0xddd44499, 0x92222222
  dc32 0x33333335, 0x33333333, 0x33333333, 0x33333333, 0x22222222, 0xccccecdc, 0x49949999, 0x22222222
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x22666883, 0xcccccccd, 0x99494449, 0x22222222
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555, 0xd499226a, 0xddcccccd, 0x22999944
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555, 0xd992668a, 0xdccccdcd
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x33555555, 0xdd449999
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x9999994d
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555533, 0x55555333, 0x3886299d, 0xdccccccd
  dc32 0x55533333, 0x55333333, 0x53333333, 0x33333333, 0x33333362, 0x82294dcc, 0xccccddd9, 0xd4992292
  dc32 0x33333333, 0x33333336, 0x3333124c, 0x3329dcd4, 0x94ccdd22, 0xcd99b222, 0x92226222, 0x22222222
  dc32 0x3369dccc, 0x2dcec449, 0xcc429222, 0x99222b22, 0x22222222, 0x822b2222, 0x22222222, 0x22272222
  dc32 0x44729222, 0x22229222, 0x22222292, 0x22222222, 0x22222922, 0x22292292, 0x22222222, 0x29222292
  dc32 0x29229297, 0x99277299, 0x22922227, 0x22222227, 0x72272297, 0x2222b222, 0x92292299, 0x99979997
  dc32 0x9ed33347, 0x2eeb3370, 0x99e411b0, 0x29eeb110, 0x99ce7114, 0x929e0112, 0x299ee11b, 0x7994eb11
  dc32 0x3000b111, 0x60401111, 0x70041111, 0x7071111, 0x2021111, 0x70b1111, 0x411111, 0x40711111
  dc32 0xb0355555, 0x10855555, 0x10655555, 0x14255555, 0x17455555, 0x12055555, 0x12035555, 0x1b085555
  dc32 0x55555520, 0x55555602, 0x55553471, 0x55537413, 0x55520233, 0x55602133, 0x53441333, 0x524b3333
  dc32 0xb3333333, 0x33333331, 0x33333331, 0x33333311, 0x33333311, 0x33333111, 0x33333111, 0x33331111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111117, 0x1111117e, 0x111117ee
  dc32 0x1111b700, 0x111b4eee, 0x11bdeee4, 0x17dec442, 0x7ee99222, 0xedd22222, 0xe7922292, 0x92222222
  dc32 0xdeedd222, 0xd492b22b, 0x99292222, 0x29299222, 0x22222222, 0x22222222, 0x22227229, 0x22222229
  dc32 0x2b292222, 0x226222b2, 0x22222922, 0x22222972, 0x22222286, 0x29929966, 0x99999992, 0x99229999
  dc32 0x82662266, 0x62626666, 0x22222222, 0x22622262, 0x26626626, 0x22226229, 0x22222229, 0x22222222
  dc32 0x26226622, 0x66686686, 0x22666262, 0x22226222, 0x62286682, 0x22926662, 0x92292626, 0x92699262
  dc32 0x62282266, 0x68666866, 0x26626999, 0x62269ccc, 0x66669ccc, 0x26662999, 0x92662266, 0x92626666
  dc32 0x26626626, 0x8666a686, 0x29926262, 0xccc99622, 0xcccc9966, 0xcccccc92, 0x9cccccc9, 0x2ccccccc
  dc32 0x82266266, 0x66666666, 0x26266662, 0x62266266, 0x66229922, 0x9999c999, 0xcccccccc, 0xcccccccc
  dc32 0x26662a22, 0x866a6666, 0x66266666, 0x26622622, 0x6a686666, 0x96666666, 0xc9222622, 0xcc966222
  dc32 0xa6666666, 0x66666a66, 0x62626626, 0x66262226, 0x66866866, 0x66866666, 0x66266266, 0x26666666
  dc32 0x26662662, 0xa6666666, 0x62266666, 0x22622662, 0x86668668, 0x66666626, 0x22622622, 0x86666686
  dc32 0x28266268, 0x66866686, 0x62662662, 0x66226226, 0x66826666, 0x66826666, 0x62262226, 0x62866862
  dc32 0x2269dccd, 0x68682999, 0x26662622, 0x22622262, 0x68686666, 0x26666266, 0x22262262, 0x66626268
  dc32 0x26353333, 0xcdd96333, 0x99cccd23, 0x66994ecd, 0x6686297c, 0x66622222, 0x26226222, 0x26622222
  dc32 0x33331111, 0x33331111, 0x33331111, 0x96331111, 0xed211111, 0x4cc42111, 0x294ec9b1, 0x2229dc42
  dc32 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x11111b20, 0x1111bb74, 0x1111bb44
  dc32 0xb1331114, 0xb1331117, 0xb1333112, 0xb1333111, 0xb1333111, 0x11333111, 0x11333111, 0x13333111
  dc32 0x4bbbbbbb, 0xbbbbbbb, 0x2bbbbbb, 0x7bbbbbb, 0x40bbbbbb, 0x70bbbbb7, 0x202bb2de, 0xb44b7ccd
  dc32 0xbbb11111, 0xbbb11129, 0xbbbb24ce, 0xbb24cec4, 0x29ced222, 0xccc99222, 0xcd929922, 0x92222922
  dc32 0x1224ceee, 0xdccdd429, 0xe4d92922, 0x92922297, 0xb2222222, 0x22222222, 0x72222292, 0x22222222
  dc32 0x94492222, 0x22222b22, 0x92222222, 0x22922922, 0x22222222, 0x22222222, 0x22922762, 0x22222222
  dc32 0x22222829, 0x8228222b, 0x22222222, 0x22292229, 0x222b222b, 0x22222222, 0x22222629, 0x2222222b
  dc32 0x22222222, 0x22b22822, 0x22222222, 0x22222222, 0x22b22b22, 0x22262226, 0x22222222, 0x22622b22
  dc32 0x92222622, 0x62282228, 0x29222222, 0x22222222, 0xb228222b, 0x22262222, 0x22229222, 0xb2222222
  dc32 0x26226226, 0x26626666, 0x22222222, 0x22222922, 0x22822282, 0x22222222, 0x22222222, 0x22b22822
  dc32 0x29999994, 0x66668666, 0x62226226, 0x22222222, 0x26266628, 0x22662222, 0x29222222, 0x22262222
  dc32 0x44ccdecc, 0x62692299, 0x22622622, 0x22222226, 0x22b826b2, 0x22662262, 0x22226222, 0x22622262
  dc32 0xccccecec, 0x92999992, 0x26222222, 0x22629229, 0x2822822b, 0x26226222, 0x22222229, 0x22628222
  dc32 0xdddd9992, 0x22b22262, 0x22622222, 0x22222222, 0x228222b2, 0x22222222, 0x22222222, 0x622222b2
  dc32 0x22222222, 0x2222b222, 0x22222222, 0x22229262, 0x6b22bb62, 0x22222622, 0x29229222, 0x2b22b222
  dc32 0x22622222, 0x222622b2, 0x22222222, 0x22222222, 0xb22b2282, 0x22222262, 0x22222222, 0x22222222
  dc32 0x22222722, 0x28222222, 0x22222292, 0x29227992, 0x22292222, 0x22299222, 0x29729922, 0x22222222
  dc32 0x22272292, 0x22222222, 0x97929929, 0x92299999, 0x222b2229, 0x22222229, 0x22222229, 0x22622222
  dc32 0x27922722, 0x22222222, 0x99999979, 0x29999999, 0x99299299, 0x99729799, 0x29992979, 0x99222979
  dc32 0x7994e711, 0x2992e011, 0x2997ee11, 0x9999ee11, 0x9222ee11, 0x9927ce11, 0x9999ee11, 0x2972ee11
  dc32 0x204b1111, 0x1244b111, 0x11b44b13, 0x133b4421, 0x1333b442, 0x11333b74, 0x11333317, 0x11333331
  dc32 0x11065536, 0x11478674, 0x27004474, 0x72222b12, 0x11333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x20233333, 0x7333333, 0x41333333, 0xb3333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33331111, 0x33311111, 0x33311111, 0x33311111, 0x33111111, 0x33111111, 0x31111111, 0x31111111
  dc32 0x1111beed, 0x111bdec9, 0x1117ec92, 0x117ee992, 0x1beec299, 0x17ec9292, 0xbee99222, 0x7ec29922
  dc32 0x22222222, 0x22222922, 0x22222222, 0x22222222, 0x29222229, 0x77229229, 0x22222299, 0x22222299
  dc32 0x22222299, 0x29297992, 0x22292996, 0x97929992, 0x99979999, 0x99992999, 0x9c299999, 0x99999999
  dc32 0x26222999, 0x26992999, 0x99229929, 0x99292999, 0x99999999, 0x99979929, 0x92272999, 0x92999999
  dc32 0x92229222, 0x99999229, 0x29929222, 0x29222222, 0x97999929, 0x99999929, 0x99999229, 0x99999992
  dc32 0x96229262, 0x92229222, 0x29262922, 0x92222992, 0x92229292, 0x22229992, 0x22222222, 0x99229929
  dc32 0x29266662, 0x29922229, 0x22999626, 0x62999969, 0x22999929, 0x22999622, 0x62929226, 0x29229992
  dc32 0x9ccccccc, 0x99cccccc, 0x82999ccc, 0x66662999, 0x92622622, 0x62229922, 0x66226226, 0x26226662
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x99cccccc
  dc32 0xccc99999, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x99926666, 0xccc99266, 0xcccc9222, 0xccccc999, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x66666686, 0x22622262, 0x22228666, 0x99992266, 0xccccc992, 0xcccccc96, 0xccccccc9, 0xcccccccc
  dc32 0x66666666, 0x26226226, 0x22662822, 0x66666626, 0x26226226, 0x22662822, 0x22226666, 0x99999966
  dc32 0x66666666, 0x22622222, 0x28228226, 0x66666266, 0x62622262, 0x28266226, 0x66666262, 0x22622222
  dc32 0x62222222, 0x62226222, 0x22b29222, 0x22222222, 0x22222222, 0x22229222, 0x26226222, 0x22222222
  dc32 0xb22229dc, 0x6222227c, 0x2b222292, 0x22222222, 0x22222222, 0x22222222, 0x22222222, 0x22922222
  dc32 0x4611bb07, 0xed2bbb02, 0x9ce4bb02, 0x29de470b, 0x929deeeb, 0x9922dee1, 0x22222ec1, 0x22297ed1
  dc32 0x13333111, 0x13333311, 0x13333311, 0x13333311, 0x13333311, 0x13333331, 0x13333331, 0x33333331
  dc32 0xb70dec92, 0x1beec999, 0x1bee9729, 0x1b7ed279, 0x1bbec999, 0x11bde999, 0x11b7e492, 0x11bbee99
  dc32 0x22922222, 0x99229992, 0x92292279, 0x29222222, 0x99229929, 0x92299222, 0x29222222, 0x79222799
  dc32 0x22222222, 0x72229222, 0x22222222, 0x22222222, 0x29222292, 0x29222222, 0x29222222, 0x29229292
  dc32 0x22222222, 0x22222222, 0x22222222, 0x22222222, 0x27922222, 0x22222222, 0x22999999, 0x24cccccc
  dc32 0x22222b22, 0x22222622, 0xb2222222, 0x22222222, 0x22292229, 0x2222299c, 0x922229dc, 0xd9999dcc
  dc32 0x22622622, 0x22222222, 0x22622622, 0x29292222, 0x99999992, 0xcccccc99, 0xcccccccc, 0xcccccccc
  dc32 0x22622622, 0x22629222, 0x6226b299, 0x22622999, 0x22299ccc, 0x229ccccc, 0x929ccccc, 0xc9cccccc
  dc32 0x22622626, 0x22222226, 0x99992222, 0xccc99926, 0xcccccc92, 0xccccccc9, 0xcccccccc, 0xcccccccc
  dc32 0x22262262, 0x22222229, 0x26229999, 0x22299ccc, 0x229ccccc, 0x29cccccc, 0x2ccccccc, 0x9ccccccc
  dc32 0x62222222, 0x92926222, 0x99999622, 0xccc99222, 0xccccc992, 0xccccccc9, 0xcccccccc, 0xcccccccc
  dc32 0x62622999, 0x2229cccc, 0x299ccccc, 0x99cccccc, 0x9ccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x99222222, 0xc9992222, 0xccc92262, 0xcc922222, 0xcc922222, 0xc9222222, 0xc622b228, 0xc2222222
  dc32 0x22222262, 0x29929229, 0x22229292, 0x22992222, 0x29992229, 0x22992222, 0x22922222, 0x22292929
  dc32 0x92222222, 0x92222299, 0x22922929, 0x29922222, 0x29929999, 0x2299c927, 0x22299999, 0x99299299
  dc32 0x99222292, 0x99999222, 0x99992992, 0x29929999, 0x99799999, 0x92292999, 0x29222929, 0x99922999
  dc32 0x22222292, 0x22222292, 0x99922222, 0x99992299, 0x92292999, 0x79999929, 0x22292292, 0x99999992
  dc32 0x22229979, 0x22929999, 0x92999999, 0x99799972, 0x97999999, 0x99999999, 0x29999999, 0x22999999
  dc32 0x7977ee11, 0x9999ed11, 0x9999e011, 0x9999e411, 0x9999e411, 0x9994e711, 0x999deb11, 0x999ce111
  dc32 0x11333333, 0x11133333, 0x11133333, 0x11113333, 0x11113333, 0x11111333, 0x11111333, 0x11111133
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333331, 0x33333331, 0x33333331, 0x33333331
  dc32 0x3111111b, 0x11111117, 0x111111be, 0x1111117e, 0x111111de, 0x11111bec, 0x111117ec, 0x111110e4
  dc32 0xee922972, 0xed222222, 0xe9222222, 0xc2972992, 0x42299992, 0x922c9922, 0x92cc9292, 0x29c99222
  dc32 0x29229299, 0x2b222999, 0x22222999, 0x27299999, 0x22299992, 0x2229c992, 0x99229999, 0x222229c9
  dc32 0x92999999, 0x99992999, 0x99999999, 0x99999999, 0x99299999, 0x99999999, 0x99999999, 0x97999979
  dc32 0x99999999, 0x99999999, 0x99999999, 0x99979999, 0x99999999, 0x99999999, 0x99999999, 0x92999999
  dc32 0xc9999999, 0xc9929929, 0x99229929, 0x99299c99, 0x99299929, 0x99999922, 0x99999999, 0x29797999
  dc32 0x99229929, 0x22222229, 0x22292229, 0x29992229, 0x22992222, 0x22999922, 0x29929929, 0x29922922
  dc32 0x99229999, 0x22269229, 0x22229226, 0x92299622, 0x29299626, 0x29292926, 0x22999992, 0x29c92962
  dc32 0x62262262, 0x62666626, 0x62666662, 0x62222262, 0x66626622, 0x66666662, 0x62262269, 0x6662269c
  dc32 0x29cccccc, 0x66cccccc, 0x66cccccc, 0x22cccccc, 0x69cccccc, 0x9ccccccc, 0xcccccccc, 0xcccccccc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0xcccccc92, 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x66222222, 0x66666662, 0x22229222, 0x999cc992, 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x22229222, 0x6226b222, 0x22222222, 0x22222222, 0x9222b222, 0x99222222, 0xcc299299, 0xcc9dcddd
  dc32 0x22922922, 0x22222922, 0x22222222, 0x22222222, 0x22222222, 0x22222222, 0x22292292, 0x99222222
  dc32 0x2922ce71, 0x2229de21, 0x2229eeb1, 0x2924e713, 0x222de213, 0x222eeb13, 0x999e4113, 0x22de2133
  dc32 0x33333331, 0x33333331, 0x33333333, 0x33533333, 0x35533333, 0x35553333, 0x35553333, 0x55553333
  dc32 0x11bb4ed9, 0x111b2ec7, 0x111bbde4, 0x1111b7ed, 0x1111b2ee, 0x11111bde, 0x31111b2c, 0x311111b2
  dc32 0x92792299, 0x22222222, 0x22922222, 0x92992299, 0x49922929, 0xd4722929, 0xed9999cc, 0xeed99dcc
  dc32 0x29729922, 0x22229229, 0x2222922d, 0x2972999c, 0x292292dc, 0x499d92cc, 0xcccccd9c, 0xccccccdc
  dc32 0xdccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0xccc2cccc, 0xccc9cccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccd, 0xccccccc9
  dc32 0xccccc999, 0xcccd9922, 0xc9992222, 0xc9222299, 0x92229922, 0x92999992, 0x97999999, 0x22299922
  dc32 0x999ccccc, 0x22299ccc, 0x22229999, 0x22229922, 0x22222222, 0x22922222, 0x22992992, 0x22299299
  dc32 0xcccccccc, 0xcccccccc, 0x999ccccc, 0x222ccccc, 0x22299ccc, 0x22222999, 0x92292229, 0x92222222
  dc32 0xc9262229, 0xc222b222, 0x92222222, 0x22222229, 0x9b222222, 0x92222222, 0xc9929222, 0xcc922222
  dc32 0x22992999, 0x22292222, 0x29299222, 0x92999299, 0x2299c229, 0x22229922, 0x22722992, 0x22222992
  dc32 0x99999999, 0x92992999, 0x22922999, 0x29929929, 0x22929999, 0x92929922, 0x99999929, 0x99992999
  dc32 0x99972299, 0x99922922, 0x99997999, 0x99292999, 0x92292999, 0x99997799, 0x99999999, 0x29729999
  dc32 0x99999922, 0x99999922, 0x99999722, 0x79729722, 0x72299222, 0x29999992, 0x99999999, 0x99999999
  dc32 0x97999999, 0x99994999, 0x99994999, 0x99999999, 0x99999949, 0x999999d9, 0x999999c9, 0x99c999c9
  dc32 0x999ee111, 0x994e4111, 0x99de2111, 0x99ee1111, 0x94e71111, 0x9deb1111, 0x4e711111, 0xdeb11111
  dc32 0x11111133, 0x11111133, 0x11111113, 0x11111113, 0x11111113, 0x11111111, 0x11111111, 0x11111111
  dc32 0x33333331, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311, 0x33333311
  dc32 0x11111ee9, 0x1111bee9, 0x11112ecd, 0x11117ecc, 0x11114ecc, 0x11114ecc, 0x11114ecc, 0x11110ecc
  dc32 0x2dc92222, 0x2ccc2722, 0x9ccc9222, 0xcccc2222, 0xcccc2222, 0xcccc9227, 0xcccc2222, 0xcccc9922
  dc32 0x222229c9, 0x229999c9, 0x229929c9, 0x22222299, 0x22229279, 0x22792292, 0x22222222, 0x22222222
  dc32 0x22999929, 0x99999999, 0x99999999, 0x99999992, 0xc9999992, 0x99999999, 0x29999999, 0x29999999
  dc32 0x97999999, 0x9c999999, 0x99999999, 0x99997299, 0x99999999, 0x99999999, 0x99999929, 0x99999929
  dc32 0x29992992, 0x99999999, 0x99999929, 0x99792999, 0x99992999, 0x99999999, 0x92999999, 0x97999999
  dc32 0x29222c22, 0x99729929, 0x92999992, 0x22929229, 0x29929299, 0x9999c999, 0x99999999, 0x9c929992
  dc32 0x29926666, 0x29926666, 0x99962266, 0x99666666, 0x99226666, 0x92922222, 0x22922266, 0x2b222262
  dc32 0x666626cc, 0x626629cc, 0x26622ccc, 0x66666ccc, 0x66262ccc, 0x26222ccc, 0x66669ccc, 0x8229cccc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccc99, 0xccccc996
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xccc999c9, 0xc9992299, 0xc2266222, 0x96666626, 0x62622622
  dc32 0xcccccccc, 0xccccc9cc, 0xc999929c, 0x92962662, 0x66266226, 0x92629222, 0x22222229, 0x22222229
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x999ccccc, 0x222dcccc, 0x2229cccc, 0x2222cccc, 0x22b2cccc
  dc32 0xcc222222, 0xccd72292, 0xccc92229, 0xcccd9999, 0xcccccccd, 0xcccccccc, 0xcccccccc, 0xccccccce
  dc32 0x22edb133, 0x2de71333, 0x9ce61335, 0x4ed13335, 0xde713335, 0xee213355, 0xeed76355, 0xeeeec285
  dc32 0x55555533, 0x55555533, 0x55555333, 0x55555533, 0x55555533, 0x55555533, 0x55555555, 0x55555555
  dc32 0x3111111b, 0x3311111b, 0x33111111, 0x33111111, 0x33311111, 0x33311111, 0x33331111, 0x33331111
  dc32 0x2ec9cccc, 0xb4eccccc, 0xbbdecccc, 0xbb2eeccc, 0x1b2eeecc, 0x1beeeeec, 0xbdeeceee, 0x2eecceee
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xccccccec, 0xcccccccc, 0xccccccec, 0xecccccec
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcceccecc, 0xcccccccc, 0xcceececc, 0xcceeeecc
  dc32 0xccccccc2, 0xccccccc2, 0xcccccc97, 0xcccccc92, 0xccccccc2, 0xcccccccd, 0xccccccc9, 0xecccccc9
  dc32 0x22299992, 0x79229999, 0x29229992, 0x92229922, 0x99229922, 0x79999999, 0x99929299, 0x99229299
  dc32 0x92222999, 0x99922999, 0x99229229, 0x22222222, 0x22992272, 0x99299929, 0x29222992, 0x29222292
  dc32 0x22222222, 0x99292299, 0x99992792, 0x29922222, 0x22992222, 0x22997922, 0x229c2222, 0x92999222
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x9ccccccc, 0x9ccccccc, 0x2ccccccc, 0x2ccccccc
  dc32 0xcc922222, 0xcc992722, 0xccc92222, 0xcccc9992, 0xccccccc2, 0xccccccc2, 0xcccccc92, 0xcccccc99
  dc32 0x22222992, 0x92992292, 0x99227222, 0x22222222, 0x22222222, 0x29229222, 0x22222222, 0x22222222
  dc32 0x999c9999, 0x999c9999, 0x99999997, 0x22999999, 0x22299999, 0x22299999, 0x22229929, 0x92229979
  dc32 0x29729999, 0x99999999, 0x79999999, 0x99799997, 0x99999999, 0x9c99c999, 0x99999999, 0x99999999
  dc32 0x99999999, 0x99999999, 0x99999999, 0x99999999, 0x9999c99c, 0x9999c99c, 0xd9c7d999, 0xc9c79999
  dc32 0x9c9999cd, 0x999999ce, 0x4999dcce, 0x499dcce4, 0x999dceeb, 0x9994ee71, 0x999de711, 0x99de4b11
  dc32 0xe7111111, 0xeb111111, 0x71111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x33333331, 0x33333331, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x11110ecc, 0x11110ecc, 0x11110ecc, 0x11114ecc, 0x31114ecc, 0x31114ecc, 0x33112ecc, 0x3311beec
  dc32 0xcccccc99, 0xccccccc9, 0xccccccc9, 0xcccccccd, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x22722292, 0x22222292, 0x22292292, 0x92992992, 0xcd999222, 0xcccc9222, 0xcccc9292, 0xccccc299
  dc32 0x99999999, 0x22929999, 0x22222999, 0x22229229, 0x22222222, 0x22222222, 0x79222922, 0x92292992
  dc32 0x99999999, 0x99999999, 0x99999999, 0x99999994, 0x27929997, 0x22222292, 0x22992292, 0x29922222
  dc32 0x9c99999c, 0x99999999, 0x99999997, 0x44494994, 0x77792992, 0x2229b292, 0x22222222, 0x22222222
  dc32 0xc9949992, 0x99972222, 0x99922222, 0x99222222, 0x29922222, 0xb2922222, 0x22299222, 0x22269929
  dc32 0x22222222, 0x22292299, 0x2222929c, 0x2222972c, 0x2229229c, 0x2222229c, 0x222b29cc, 0x22229ccc
  dc32 0x929ccccc, 0x99cccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0xcccc9622, 0xcccc2222, 0xcccc9222, 0xccccc229, 0xccccc222, 0xcccc9222, 0xcccc9292, 0xccc92222
  dc32 0x62222999, 0x22229992, 0x22229922, 0x22999922, 0x22992222, 0x29922292, 0x29922992, 0x99229299
  dc32 0x99222299, 0x29222299, 0x22222992, 0x92299999, 0x29922292, 0x29222292, 0x992222c7, 0x92929999
  dc32 0x79929ccc, 0x992229cc, 0x929229cc, 0x229929cc, 0x222926cc, 0x962922cc, 0x92992ccc, 0x92929ccc
  dc32 0xccccccce, 0xccccccee, 0xccccccee, 0xccccceee, 0xcccceeec, 0xcccceecc, 0xccceeece, 0xcceeeeee
  dc32 0xecceeed3, 0xeccccee2, 0xccccccec, 0xccccccce, 0xeccccccc, 0xeccccccc, 0xeccccccc, 0xeccccccc
  dc32 0x55555555, 0x55555555, 0xa5555555, 0x95555555, 0xe6555555, 0xeca55555, 0xce255555, 0xce955555
  dc32 0x33333111, 0x33333111, 0x53333311, 0x53333331, 0x55333333, 0x55333333, 0x55533333, 0x55533333
  dc32 0x2eccccee, 0x2eccccee, 0x6eecccee, 0x1cecccee, 0x14ecccee, 0x12ecccce, 0x31eecccc, 0x339ecccc
  dc32 0xeecccccc, 0xeeeccccc, 0xeeeecccc, 0xeeceeccc, 0xe22deeec, 0xebbb4eee, 0xe2bbb7de, 0xe4bbbbb4
  dc32 0xccceeecc, 0xcceceeee, 0xccecceee, 0xccccccee, 0xccccccce, 0xecccecec, 0xeeccecec, 0xceeeeecc
  dc32 0xcccccccc, 0xeccecccc, 0xeccecccc, 0xeecccccc, 0xeeeeccec, 0xeeeeeeec, 0xcceeeeec, 0xcccceeee
  dc32 0xd9929999, 0xc2929999, 0xc4999dc9, 0xcc9d9cc9, 0xcc9d9ccd, 0xcc499c9d, 0xcccd9d99, 0xeeccc999
  dc32 0x99299299, 0x29299292, 0x29999292, 0x929c9799, 0x97999999, 0x99d999c7, 0xc9d999c9, 0x499c9999
  dc32 0x97999922, 0x22999922, 0x999d9922, 0x999c2972, 0x92997299, 0x2999929c, 0x9992294c, 0x999974cc
  dc32 0x2ccccccc, 0x2ccccccc, 0x9ccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccd, 0xcccc4999, 0xcccc7799, 0xcccc9999
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x4ccccccc, 0x29999ccc, 0x992799cc, 0x9999979c
  dc32 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x99229722, 0x99222222, 0xcc222222, 0xcc299229, 0xcc229999, 0xcc992222, 0xcccd9927, 0xccccc449
  dc32 0x92279944, 0x22229224, 0x22292929, 0x72292992, 0x99299999, 0x29222222, 0x29279999, 0x9447999c
  dc32 0x99999c99, 0x99499999, 0x99499944, 0x99929944, 0x99229799, 0xd9299799, 0xcd999799, 0xcc449994
  dc32 0xc9cc9999, 0x99dd9999, 0xd49dd49d, 0xd49dc4ce, 0x9997ddee, 0x2977dee7, 0x79dee471, 0xdeee7b11
  dc32 0x9ceeb111, 0xdee71111, 0xee711111, 0xe4111111, 0x71111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111117, 0x11111170, 0x11111704
  dc32 0x11111111, 0x11111111, 0x11211111, 0x17411111, 0x70711111, 0x7b11111, 0x7b111111, 0xb1111111
  dc32 0x33333333, 0x11133333, 0x11113333, 0x11111333, 0x11111333, 0x11111333, 0x11111333, 0x11111133
  dc32 0x33311eec, 0x33331eec, 0x333314ec, 0x333312ee, 0x333331ee, 0x333331ee, 0x3333317e, 0x333333be
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xeccccccc, 0xeccccccc
  dc32 0xccccc992, 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x22222222, 0x92222222, 0xc2229292, 0xc2222222, 0xc4222222, 0xcc499992, 0xcccc44c4, 0xcccccccc
  dc32 0x22222222, 0x22222229, 0x2922722c, 0x2222222c, 0x2222b29c, 0x9c4994cc, 0xcccccccc, 0xcccccccc
  dc32 0x26222222, 0x226222b2, 0x42292222, 0xc9942222, 0xcccc9222, 0xccccc449, 0xcccccccc, 0xcccccccc
  dc32 0x226b2929, 0x22222299, 0x22222999, 0x22222992, 0x2992b222, 0x9cc97299, 0xcccc994c, 0xcccccccc
  dc32 0x22299ccc, 0x222ccccc, 0x229ccccc, 0x22cccccc, 0x24cccccc, 0xcccccccc, 0xcccccccc, 0xcccccccd
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcd9d99cc, 0x99222299
  dc32 0xccc92222, 0xccc92229, 0xccc22222, 0xccc92622, 0xccc42822, 0xcccc2722, 0xcccc9922, 0xccccc922
  dc32 0x92222292, 0x92999929, 0x99299929, 0x92222929, 0x92222229, 0xc9299299, 0x99229992, 0x299b2992
  dc32 0x92929922, 0x92229292, 0x29999992, 0x29922992, 0x92229999, 0x99992cd9, 0xc2299999, 0x9922c9c9
  dc32 0x22999ccc, 0x22929ccc, 0x2999cccc, 0x2929cccc, 0x299dcccc, 0x99cccccc, 0x92cccccc, 0x99cccccc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xccccccce, 0xccccccee, 0xccccceec, 0xcccceec2, 0xccceec21
  dc32 0xcceecc4d, 0xcee92633, 0xee933333, 0xecb33335, 0xc2333335, 0x23333355, 0x13333355, 0x33333555
  dc32 0xeecccccc, 0x9eeccccc, 0x39decccc, 0x5589eecc, 0x55532cec, 0x555556de, 0x5555558d, 0x5555555a
  dc32 0xce255555, 0xce655555, 0xce655555, 0xcea55555, 0xce355555, 0xce355555, 0xee355555, 0x9d355555
  dc32 0x55553333, 0x55555333, 0x55555333, 0x55555533, 0x55555553, 0x55555555, 0x55555555, 0x55555555
  dc32 0x336ecccc, 0x333deccc, 0x3336eccc, 0x3333cecc, 0x33336dcc, 0x33333329, 0x33333333, 0x53333333
  dc32 0xee8bbbbb, 0xce21bbbb, 0xced11bbb, 0xcceb11bb, 0xece7111b, 0xdee41111, 0xb2421111, 0x33111111
  dc32 0x24ceeeee, 0xbb27deee, 0xbbbbb774, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbb2, 0xbbbbbbb7, 0x1bbbbbb4
  dc32 0xeeeeee0c, 0xeeeed712, 0xcee7b111, 0x7e711111, 0x44111111, 0xb111111, 0x1111111, 0x41111111
  dc32 0xeeeeccc4, 0x7deeeeed, 0x1b70ceee, 0x1111274d, 0x1111111b, 0x11111111, 0x11111111, 0x11111111
  dc32 0x999c9999, 0xd9299299, 0xecc449cc, 0xeeeedeee, 0x740ddeee, 0x111bb777, 0x11111111, 0x11111111
  dc32 0x97229ccc, 0x9792dccc, 0xd4cccccc, 0xeeeccccc, 0xeeeeeeee, 0x440dceee, 0x111b2777, 0x11111111
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xeeeeecce, 0xeeeeeeee, 0x4eeeeed0, 0x17700477
  dc32 0xcdcc9999, 0xc4cc9792, 0xccccc999, 0xcccccc9d, 0xeeeeeeee, 0xeeeeeeee, 0x44777, 0x11111111
  dc32 0x9999299c, 0x922299cc, 0x9999cccc, 0xddcceeee, 0xeeeeeeee, 0xd0447777, 0xb1111111, 0x11111111
  dc32 0xcccccccc, 0xcccccccc, 0xcccccecc, 0xeeeeeeee, 0xecdd0444, 0x72bb1111, 0x11111111, 0x11111111
  dc32 0xcccccccc, 0xcccccccc, 0xeeeeeeee, 0xeeeeeeee, 0x44477777, 0x11111111, 0x11111111, 0x11111111
  dc32 0xccc9499c, 0xcccccccc, 0xeeeeeeee, 0xeedd4477, 0x77bb1111, 0x11111111, 0x11111111, 0x11111111
  dc32 0xccccd4cd, 0xeeeeeeed, 0xeeedd47b, 0x777bb111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0xed471111, 0x4b111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x1111b277, 0x11b77400
  dc32 0x1111747b, 0x111744b1, 0x11744b11, 0x1b40b111, 0xb7071111, 0x70711111, 0x4111111, 0x4b111111
  dc32 0x11111133, 0x11111133, 0x11111133, 0x11117113, 0x11110711, 0x111174b1, 0x1111b071, 0x11111041
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33311133
  dc32 0x33333312, 0x33333311, 0x33333311, 0x33333331, 0x33333331, 0x33333331, 0x33333331, 0x33333333
  dc32 0xeecccccc, 0xdeeccccc, 0x2eeccccc, 0x1ceecccc, 0x12eecccc, 0x114eeccc, 0x11beeecc, 0x1117eeec
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccc9d, 0xcccccc22, 0xccccc92b, 0xccccc729
  dc32 0xcccccccc, 0xcccccccc, 0xcc4ddccc, 0xcd279994, 0xd9799292, 0x92999222, 0x99999727, 0x449999c9
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xdccccccc, 0x9cc9dddc, 0x99922999, 0x9222b292, 0x97729727
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x94dccccc
  dc32 0xcccccc99, 0xcccccc22, 0xcccccc22, 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x299b9922, 0x29299999, 0x92222299, 0x229b9722, 0xd9292294, 0xcc44994c, 0xcccccccc, 0xcccccccc
  dc32 0xcccccccc, 0xcccccccc, 0xccdccccc, 0xccdccccc, 0xcccccccc, 0xccccc4cc, 0xcccccccc, 0xcccccccd
  dc32 0xccccc492, 0xcccccc42, 0xccccccc9, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x99999999, 0x22299929, 0x2222b922, 0xd9999992, 0xcccdccd9, 0xcccccccc, 0xcccccccc, 0xcccccccc
  dc32 0x2999c4d9, 0x9999999c, 0x99929ccc, 0x2994cccc, 0x994ccc99, 0xcddccc22, 0xcc4cc479, 0xc9ccccde
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xddcccccc, 0x49ceeccc, 0xcdeeeccc, 0xeeeeeeee, 0xe4deeeee
  dc32 0xcccccccc, 0xcccccccc, 0xccccccee, 0xccccceee, 0xccceeeed, 0xcceeec7b, 0xeeeed211, 0xeed2b111
  dc32 0xceee4211, 0xeee4b113, 0xee7b1113, 0xc2111133, 0x21111133, 0x11111333, 0x11113333, 0x11133333
  dc32 0x33335555, 0x33335555, 0x33355555, 0x33555555, 0x33555555, 0x33555555, 0x35555555, 0x35555555
  dc32 0x5a555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55333333, 0x55533333, 0x55533333, 0x55553333, 0x55555533, 0x55555533, 0x55555553, 0x55555553
  dc32 0x33311111, 0x33331111, 0x33333111, 0x33333331, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x11bbbbb4, 0x11bbbbb2, 0x1111bbbb, 0x11111bbb, 0x11111111, 0x33111111, 0x33311111, 0x33333111
  dc32 0x4111bbbb, 0x7777777, 0x74444477, 0xb222bbbb, 0x1bbbbbbb, 0x11111bbb, 0x11111111, 0x11111111
  dc32 0xb2222222, 0x44444444, 0x77777777, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0x11111111, 0x11111111
  dc32 0x22bbb111, 0x44777777, 0x77744404, 0xbbbbb277, 0xbbbbbbbb, 0xbbbbbbbb, 0x11111111, 0x11111111
  dc32 0x11111111, 0xb11111b7, 0x77777774, 0x74444447, 0xbb2772bb, 0xbbbbbbbb, 0x11111111, 0x11111111
  dc32 0xb2740404, 0x74447b74, 0x42bbbbb, 0x7bbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbb2
  dc32 0x77b11111, 0x447777bb, 0x24404477, 0xbbb77400, 0xbbbb2744, 0xbb274472, 0xb2447b11, 0x74721111
  dc32 0x1111111b, 0xbb727777, 0x77440044, 0x477bb, 0x477b1111, 0xb1111111, 0x11111111, 0x11111111
  dc32 0xbbbbbbbb, 0x77777777, 0x44777744, 0xbb1111bb, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x7722b111, 0x44772b, 0x77774047, 0x1111b774, 0x1111111b, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x72b11111, 0x477b111, 0x77407211, 0x11b74472, 0x111b7447
  dc32 0x11111111, 0x11111113, 0x11113333, 0x11133333, 0x11333338, 0x333338b7, 0xbbbb2447, 0x44447763
  dc32 0x1111111b, 0x11111127, 0x3311b740, 0x3b274722, 0xb4476333, 0x47633335, 0x63333335, 0x33333335
  dc32 0x27404777, 0x4477b111, 0x4b111111, 0x42111111, 0x4477b111, 0x8744777b, 0x55827447, 0x55553674
  dc32 0xb1111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x77111111, 0x4771111
  dc32 0x11111401, 0x1111120b, 0x11111b02, 0x11111107, 0x11111170, 0x111111b0, 0x11111114, 0x1111111b
  dc32 0x13111113, 0x11111111, 0x11111111, 0x11111b11, 0xb11117b1, 0x71111471, 0x4b111b0b, 0x7b11144
  dc32 0x33333333, 0x33333333, 0x13333333, 0x13333333, 0x13333333, 0x11333333, 0x11333333, 0xb1133333
  dc32 0x11114eec, 0x1111beee, 0x111112ee, 0x3111117e, 0x3111111d, 0x3111111b, 0x31111111, 0x33111111
  dc32 0xccccccce, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xdeeeeeee, 0xbdeeeeee, 0x1beeeeee
  dc32 0xccccd999, 0xeeec9799, 0xeeec979d, 0xeeed24c9, 0xeec42c92, 0xeee49c27, 0xeeed9c79, 0xeeee9449
  dc32 0xd9929999, 0x99922799, 0xd4942992, 0x747d7d99, 0x74499492, 0x4dd92d97, 0xd7477994, 0x94d7497d
  dc32 0x97429222, 0x97c99222, 0x29dd4927, 0x2999d999, 0x22979c49, 0x79299dc4, 0x999729dc, 0xc999227c
  dc32 0x9299cccc, 0x2922dccc, 0x92999ccc, 0x9722cccc, 0x7992cccc, 0x4294cccc, 0x9799cccc, 0x49229ccc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcceccccc, 0xcceccccc, 0xcccccccc
  dc32 0xcccccccd, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcceccccc, 0xccecccec, 0xccccccec, 0xcccccccc
  dc32 0xdccccccc, 0x4ccccccc, 0xcccccdcc, 0xccccc4cd, 0xcccccccd, 0xceceecee, 0xceceeeee, 0xcecccecc
  dc32 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xccdcccce, 0xdd4cceee, 0xeeeeeeee, 0xeeeeeeee, 0xeeceeee7
  dc32 0xd9cceeed, 0x4cceeedb, 0xeeeee4b1, 0xeeee7111, 0xeee71111, 0xed711111, 0xb111111, 0x111111b2
  dc32 0x21124eee, 0x111117c0, 0x11111120, 0x111111b4, 0x1111b240, 0x11b24477, 0xb24472b1, 0x44721111
  dc32 0xd2b11111, 0x21111111, 0x41111113, 0x1111133, 0x71113333, 0xb1133333, 0x13333333, 0x33333333
  dc32 0x13333333, 0x33333335, 0x33333335, 0x33333355, 0x33333555, 0x33335555, 0x33335555, 0x33355555
  dc32 0x33333333, 0x53333333, 0x55333333, 0x55533333, 0x55553333, 0x55555333, 0x55555555, 0x55555555
  dc32 0x33333331, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x11111111, 0x11111111, 0x33311111, 0x33333111, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x31111111, 0x33333111, 0x33333333, 0x33333333
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x33311111, 0x3331111b
  dc32 0x11111111, 0x1111111b, 0x11111bbb, 0x1111bbb2, 0x11112274, 0x11b24472, 0xb2447b13, 0x707b3333
  dc32 0xbbbbbb24, 0xbbbb2747, 0xb2274421, 0x24472b33, 0x47213311, 0xb3333111, 0x33311111, 0x33111111
  dc32 0x42133111, 0x23331111, 0x33111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x1111111b
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x111b7777, 0xb7774400
  dc32 0x11111111, 0x11111111, 0x11111117, 0x11111b74, 0x1111b744, 0x11b7704b, 0x7774407b, 0x4047b04b
  dc32 0x1177442b, 0xb7447211, 0x70721111, 0x47b11111, 0x2b111111, 0xbb111111, 0xbb111111, 0xb1111111
  dc32 0xb2221333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11333333
  dc32 0x33333335, 0x33333335, 0x33333335, 0x33333355, 0x33333355, 0x33333355, 0x33333355, 0x33333355
  dc32 0x55555556, 0x55555551, 0x55555558, 0x55555556, 0x55555556, 0x55555552, 0x55555552, 0x55555552
  dc32 0x47111, 0x4404711, 0x4740471, 0x4774447, 0x9777940, 0x9777794, 0x9777779, 0x9777777
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x71111111, 0x47111111, 0x4711111, 0x404b1111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x1111111b, 0x11111177, 0x1111b744, 0x11177006
  dc32 0x707711b0, 0x17047b17, 0x11704777, 0x1b744740, 0x24476327, 0x4655533, 0x23555533, 0x55555533
  dc32 0x71133333, 0xb113333, 0x4113333, 0x711333, 0x744b1133, 0x3b071133, 0x3340b113, 0x33b07113
  dc32 0x33111111, 0x33111111, 0x33111111, 0x33311111, 0x33311111, 0x33311111, 0x33331111, 0x33331111
  dc32 0x11beeeee, 0x1112eeee, 0x11117eee, 0x11111bee, 0x111111bd, 0x11111111, 0x11111111, 0x11111111
  dc32 0xeeeec4dc, 0xeeee4c4d, 0xeeeedc49, 0xeeeeed79, 0xeeeeed4c, 0xeeeeee4c, 0x4eeeeecd, 0xb07deee4
  dc32 0x94dcc447, 0x9cd9d4c9, 0x94749744, 0x424c794d, 0xcccc44d4, 0xcdccd44d, 0xc4cc4444, 0xdcccc44c
  dc32 0xddc7972d, 0x49d47449, 0x999d4d97, 0x9929c727, 0xcd7dc497, 0xc494c49d, 0xc997d77c, 0xd9c47444
  dc32 0xc77994cc, 0xc4729cec, 0xc97292ce, 0xc27922cc, 0xc49974ee, 0xc7924cee, 0xc274dcee, 0x744ceeee
  dc32 0xcccccccc, 0xcceccece, 0xeececcee, 0xceeceece, 0xeeeeeeee, 0xeeeeeeee, 0xeeeceece, 0xeeeeeeee
  dc32 0xccccccee, 0xeecceeee, 0xceeceece, 0xeceeccee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeecee, 0xeccddddd
  dc32 0xcceccddc, 0xeecd4974, 0xeec24942, 0xcec229d2, 0xeec779c4, 0xeec499dd, 0xceed9279, 0xeeeec4ee
  dc32 0xeceeecee, 0xceeeeeee, 0x7eeeceee, 0x7ceeeeee, 0x7deeeee4, 0x44eeec04, 0xceee7277, 0xee7b1111
  dc32 0xeeeee0b1, 0xeeed7111, 0xee7b1111, 0xdb111117, 0xb1111b74, 0x7b11b704, 0x77b707b, 0x744707b1
  dc32 0x1111b244, 0x11b24072, 0xb77077b1, 0x7047b111, 0x47b11111, 0x21111111, 0x11111111, 0x11111133
  dc32 0x72b11133, 0x11111333, 0x11113333, 0x11133333, 0x11333333, 0x13333333, 0x33333333, 0x33333333
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333355, 0x33333555, 0x33335555, 0x33355555
  dc32 0x35555555, 0x35555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55333333, 0x55533333, 0x55555533, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x55333333, 0x55555553, 0x55555555, 0x55555555
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x55533333, 0x55553333
  dc32 0x333111b7, 0x33311b44, 0x3331b446, 0x33317463, 0x333b0233, 0x33344133, 0x3330b333, 0x33101111
  dc32 0x42133333, 0xb3333311, 0x33333111, 0x33331111, 0x33111111, 0x31111111, 0x11111111, 0x11111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x111111b7, 0x11117774, 0x1b774077, 0x774072b1
  dc32 0x11111111, 0x11111111, 0x111111b7, 0x1bb77774, 0x77744447, 0x477772b1, 0x2b111111, 0x33333111
  dc32 0x11111b77, 0x11b77404, 0x77744772, 0x477bb1b, 0x72b1111b, 0x111111bb, 0x111111b2, 0x111111b2
  dc32 0x74447777, 0xbb1111, 0x44111111, 0x44111111, 0x2333111, 0xb333311, 0x1333311, 0x1333111
  dc32 0xb7b1107b, 0x1111b02b, 0x111120bb, 0x111170bb, 0x111140bb, 0x111144bb, 0x111107bb, 0x111109bb
  dc32 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0x11111111
  dc32 0x11333333, 0x11333333, 0x11333333, 0x11333333, 0x11333333, 0x13333333, 0x13333333, 0x13333333
  dc32 0x33333555, 0x33333555, 0x33335555, 0x33333555, 0x33333555, 0x33333555, 0x33333555, 0x33335555
  dc32 0x55555557, 0x55555554, 0x55555554, 0x55555550, 0x55555550, 0x55555550, 0x55555550, 0x55555550
  dc32 0x9977777, 0x9997777, 0x9999777, 0x9999977, 0x9999777, 0x9997777, 0x9977777, 0x49997777
  dc32 0x7407b111, 0x79407b11, 0x72240771, 0x7222704b, 0x92222747, 0x22226620, 0x22226667, 0x22226666
  dc32 0x11740045, 0x17442403, 0xb0426403, 0x27666703, 0x66666903, 0x66666203, 0x66666208, 0x66666206
  dc32 0x33344b11, 0x333b0711, 0x333374b1, 0x33336071, 0x3333370b, 0x53333607, 0x53333320, 0x53333334
  dc32 0x33333111, 0x13333311, 0x13333331, 0x11333333, 0x11133333, 0x11133333, 0x71113333, 0x4b111333
  dc32 0x1111b777, 0x11112004, 0x1111b777, 0x11111111, 0x33111111, 0x33331111, 0x33333111, 0x33333331
  dc32 0x7071deec, 0x444117ee, 0x740771bd, 0x1b7047b1, 0x1117407b, 0x1111b407, 0x11111174, 0x1111111b
  dc32 0xdcddc4cc, 0xeddcd4dd, 0xeee4d44c, 0x7deeeedd, 0x117deeee, 0x711174ee, 0x47b1111b, 0x407b1111
  dc32 0x7dcc99dd, 0x744cdd74, 0xeddc7444, 0xd47c0744, 0xdd7cdd9c, 0xeeeeeeee, 0x7deeeeee, 0x111b774d
  dc32 0x7744eeee, 0x47dceeee, 0x4ceeeeee, 0xcceeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xdddddddd
  dc32 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeece, 0xeeecceee, 0xeeeeeeee, 0xeeeeeeed, 0x4477bb11
  dc32 0xe4744472, 0xc4744944, 0xeecdccce, 0xed4deeee, 0xedeeeee4, 0xeeeed7b1, 0x77b11111, 0x11111111
  dc32 0x4ceeeeee, 0x24eeeed7, 0xeeeed711, 0xed7b1111, 0xb1111111, 0x11111111, 0x11111111, 0x11111111
  dc32 0xd7111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x1111111b, 0x11111bb7, 0x111bb704
  dc32 0x1b404111, 0x11b04111, 0x11170b11, 0x111b0211, 0x11b70211, 0xbb444b13, 0x44421133, 0x42b13333
  dc32 0x11111333, 0x11113333, 0x11133333, 0x11333333, 0x13333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333355, 0x33335555, 0x33335555, 0x33555555, 0x35555555
  dc32 0x33555555, 0x35555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55553333, 0x55553333, 0x55553333, 0x55555333, 0x55555333, 0x55555333, 0x55555533, 0x55555533
  dc32 0x33b01111, 0x33601111, 0x33601111, 0x3330b111, 0x33307777, 0x33324444, 0x33332777, 0x33333333
  dc32 0x111111b7, 0x1111b740, 0x11b77047, 0x177447b3, 0x74446333, 0x44233333, 0x23333333, 0x33333333
  dc32 0x40721333, 0x42133333, 0xb3333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33333111, 0x33331111, 0x33331111, 0x33331111
  dc32 0x111111b2, 0x111111b7, 0x11111bb4, 0x11111bb0, 0x11111b20, 0x11111b20, 0x11111b70, 0x1111bb40
  dc32 0x3333111, 0x3333111, 0x73331111, 0xb3331111, 0xb3331111, 0x13331111, 0x33333111, 0x33331111
  dc32 0x111b02bb, 0x111202bb, 0x11120bbb, 0x11120bbb, 0x11170bbb, 0x11140bb1, 0x11144bb1, 0x11b02bb1
  dc32 0x13333333, 0x13333333, 0x13333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33355555, 0x33355555, 0x33355555, 0x33355555, 0x33355555, 0x33355555, 0x33355555, 0x33355555
  dc32 0x55555550, 0x55555530, 0x55555530, 0x55555530, 0x55555580, 0x55555560, 0x55555560, 0x55555520
  dc32 0x49977779, 0x49977772, 0x49997772, 0x49997772, 0x49999792, 0x99997922, 0x79992222, 0x92222222
  dc32 0x22226666, 0x22226666, 0x22226666, 0x22222666, 0x22222666, 0x22226666, 0x22266666, 0x22666666
  dc32 0xa6666606, 0x36666602, 0xa6666602, 0xa6666607, 0xa6666647, 0xa6666694, 0x3a666620, 0x33a66620
  dc32 0x55333332, 0x55333333, 0x55333333, 0x55533333, 0x55533333, 0x55533333, 0x55553333, 0x55553333
  dc32 0x7111133, 0x44b11113, 0x60711111, 0x344b1111, 0x36071111, 0x3344bb11, 0x336047b1, 0x33324047
  dc32 0x33333333, 0x33333333, 0x33333333, 0x13333333, 0x11333333, 0x11113333, 0x11111333, 0xb1111133
  dc32 0x11111111, 0x33111111, 0x33311111, 0x33331111, 0x33333311, 0x33333331, 0x33333333, 0x33333333
  dc32 0x17077111, 0x11744b11, 0x111b44b1, 0x1111b44b, 0x11111b44, 0x111111b4, 0x1111111b, 0x31111111
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0xb1111111, 0x4bbbbbbb, 0x44747444, 0xb0004444
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0xbbbbbbbb, 0x47777777, 0x44444444
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0xbbbbbbbb, 0x77777777, 0x44444444
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0xbbbbbbbb, 0x77777770, 0x44444447
  dc32 0x11111111, 0x111111bb, 0x1111bb70, 0x11bb7047, 0xbb7047b1, 0x7047b111, 0x42b11113, 0xb1111333
  dc32 0xbbb4047b, 0x74447b11, 0x44b11113, 0xb1111333, 0x11133333, 0x13333333, 0x33333333, 0x33333333
  dc32 0x11133333, 0x13333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333355, 0x33333555
  dc32 0x33333333, 0x33333555, 0x33335555, 0x33335555, 0x33555555, 0x35555555, 0x55555555, 0x55555555
  dc32 0x33333333, 0x33333333, 0x53333333, 0x55533333, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33333333, 0x33333333, 0x33333355, 0x33335555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33333553, 0x33555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33331111, 0x33331111, 0x33311111, 0x33311111, 0x33311111, 0x33311111, 0x33311111, 0x33311111
  dc32 0x1111bb44, 0x1111bb02, 0x1111b201, 0x111bb703, 0x111bb423, 0x111b7013, 0x111b4033, 0x11bb0233
  dc32 0x33331111, 0x33331111, 0x33331111, 0x33311111, 0x33311111, 0x3331111b, 0x33111112, 0x331111b4
  dc32 0x1170bbb1, 0x1b07bbb1, 0x170bbbb1, 0xb07bbb11, 0x70bbbb11, 0x47bbbb11, 0xbbbbb11, 0xbbbbb11
  dc32 0x11111111, 0x11111111, 0x11111111, 0x11111113, 0x11111113, 0x11111113, 0x11111113, 0x11111113
  dc32 0x33355555, 0x33355555, 0x33555555, 0x33555555, 0x35555555, 0x35555555, 0x35555555, 0x33555555
  dc32 0x55555520, 0x55555520, 0x55555570, 0x55555540, 0x55555540, 0x55555544, 0x55555504, 0x55555309
  dc32 0x22222666, 0x26666666, 0x66666666, 0x66aaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa
  dc32 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0xa6666666, 0xaa666666, 0xaa666666, 0xaa666666
  dc32 0x33366620, 0x33366660, 0x33366660, 0x333a6660, 0x3333a660, 0x33333a64, 0xaaaaaaa4, 0xaaaaaaa7
  dc32 0x35555555, 0x35555555, 0x85555555, 0x65555555, 0x25555555, 0x25555555, 0x75555555, 0x45555555
  dc32 0x55553333, 0x55553333, 0x55555333, 0x55555333, 0x55555533, 0x55555533, 0x55555533, 0x55555533
  dc32 0x33333240, 0x33333112, 0x33333111, 0x33333111, 0x33333111, 0x33333311, 0x33333311, 0x33333311
  dc32 0x47b11111, 0x40471111, 0xb2407b11, 0x11b7047b, 0x11112407, 0x11111b70, 0x111111b2, 0x111111bb
  dc32 0x33333333, 0x11333333, 0x11133333, 0x11111333, 0xb1111113, 0x4b111111, 0x407b1111, 0xb704b111
  dc32 0x33311111, 0x33331111, 0x33333111, 0x33333331, 0x33333331, 0x33333333, 0x11133333, 0x11111333
  dc32 0x1747bbb1, 0x11b4007b, 0x111b7740, 0x1111111b, 0x11111111, 0x11111111, 0x33111111, 0x33311111
  dc32 0x111bbbbb, 0xbb111111, 0x47b11111, 0x407b1111, 0x1704b111, 0x11b00b11, 0x111b00b1, 0x1111b70b
  dc32 0xbbbbbbbb, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0x11111133, 0x13333333
  dc32 0xbbbbbbb1, 0x11111111, 0x11111133, 0x11111333, 0x11133333, 0x13333333, 0x33333333, 0x33333333
  dc32 0x11333333, 0x13333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333335, 0x33335555, 0x33335555, 0x33555555, 0x55555555
  dc32 0x33335555, 0x33555555, 0x35555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55555553, 0x5555533b, 0x55555339, 0x55553332, 0x55553332, 0x55553332, 0x55553332, 0x55553337
  dc32 0x55555555, 0x85555555, 0x25555555, 0x75555555, 0x75555555, 0x45555555, 0x45555555, 0x43555555
  dc32 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555533
  dc32 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x31111111, 0x31111111
  dc32 0x11b70133, 0x11b47333, 0x11b0b333, 0x11203331, 0x11703331, 0x1b443111, 0xb2443111, 0x44441111
  dc32 0x31111120, 0x31111140, 0x11111b02, 0x1111170b, 0x1111b07b, 0x111170bb, 0x111b07bb, 0x11b40bbb
  dc32 0x2bbbbb11, 0xbbbbbb11, 0xbbbbbb11, 0xbbbbbb11, 0xbbbbb111, 0xbbbbb111, 0xbbbbb111, 0xbbbbb111
  dc32 0x11111113, 0x11111113, 0x11111113, 0x11111113, 0x11111133, 0x11111133, 0x11111133, 0x11111133
  dc32 0x33555555, 0x33555555, 0x33555555, 0x35555555, 0x35555555, 0x35555555, 0x35555555, 0x35555555
  dc32 0x55555302, 0x55555302, 0x55555806, 0x55555606, 0x5555520a, 0x5555520a, 0x5555570a, 0x5555544a
  dc32 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa
  dc32 0xaa666666, 0xaa666666, 0xaa666666, 0xaa666666, 0xaa666666, 0xaa666666, 0xaa666666, 0xa6666666
  dc32 0xaaaaaaa9, 0xaaaaaaa2, 0xaaaaaaa2, 0xaaaaaaa6, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa
  dc32 0x45555555, 0x3555555, 0x3555555, 0x8555555, 0x6555555, 0x2555555, 0x42555555, 0x74555555
  dc32 0x55555533, 0x55555533, 0x55555533, 0x55555533, 0x55555553, 0x55555553, 0x55555553, 0x55555553
  dc32 0x33333311, 0x33333311, 0x33333311, 0x33333331, 0x33333331, 0x33333331, 0x33333331, 0x33333331
  dc32 0x111111bb, 0x111111bb, 0x111111bb, 0x111111bb, 0x111111bb, 0x111111bb, 0x1111111b, 0x1111111b
  dc32 0xbb704bb1, 0xbbbb007b, 0xbbbbb704, 0xbbbbbb20, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0x11111111, 0x11111111, 0xbb111111, 0x2b11111, 0x2bbbb1, 0xb000422b, 0xb0047440, 0xb40255a6
  dc32 0x33331111, 0x11111111, 0x11111111, 0x11111111, 0x11111111, 0xbbb11111, 0x422bbbbb, 0x24440474
  dc32 0x11111100, 0x111111b0, 0x1111111b, 0x11111111, 0x11111111, 0x111111bb, 0xbbbbbb24, 0x44400447
  dc32 0xb3333333, 0x73333333, 0x8333333, 0x2333333, 0x47333333, 0x42333333, 0x6333333, 0x63333333
  dc32 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333333, 0x33333335, 0x33333555
  dc32 0x33333335, 0x33333555, 0x33335555, 0x33355555, 0x35555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55553339, 0x55553332, 0x55553332, 0x55553332, 0x55533312, 0x55533112, 0x55533112, 0x55533112
  dc32 0x43555555, 0x43555555, 0x43355555, 0x43355555, 0x43355555, 0x43355555, 0x73355555, 0x43355555
  dc32 0x55555533, 0x55555533, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555553, 0x55555555
  dc32 0x3111111b, 0x31111112, 0x31111117, 0x31111114, 0x31111114, 0x31111110, 0x33113310, 0x333333b0
  dc32 0x7441111, 0x2401111, 0xb20b111, 0xbb04bbb, 0xbb70440, 0x4bbb7447, 0x7bbbbbbb, 0xbbbbbbbb
  dc32 0x11702bbb, 0x1b07bbbb, 0xb40bbbbb, 0x40bbbbbb, 0x2bbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0xbbbbb111, 0xbbbbb111, 0xbbbbb111, 0xbbbb1111, 0xbbbb1111, 0xbbbb1111, 0xbbbb1111, 0xbbbb1111
  dc32 0x11111133, 0x11111133, 0x11111133, 0x11111133, 0x11111133, 0x11111333, 0x11111333, 0x11111333
  dc32 0x35555555, 0x35555555, 0x35555555, 0x33555555, 0x33555555, 0x33555555, 0x33555555, 0x35555555
  dc32 0x5555502a, 0x55553026, 0x55558066, 0x55552066, 0x55552066, 0x55554466, 0x55554466, 0x55550966
  dc32 0xaaaaaaaa, 0xaaaaaaaa, 0x66aaaaaa, 0x6666aaa6, 0x66666666, 0x66666666, 0x66666666, 0x66666666
  dc32 0xa6666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x6666a666
  dc32 0xaaaaaaaa, 0xaaaaaaaa, 0x5aaaaaaa, 0x5aaaaaaa, 0x5aaaaaaa, 0x5aaaaaaa, 0x55aaaaaa, 0x5aaaaaaa
  dc32 0x90555555, 0x20555555, 0x60355555, 0xa0355555, 0xa0155555, 0xa0655555, 0xa4255555, 0xa4455555
  dc32 0x1111111b, 0x1111111b, 0x1111111b, 0x11111111, 0x11111111, 0x11111111, 0x31111111, 0x31111111
  dc32 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0x1bbbbbbb
  dc32 0xb7045555, 0xbb008555, 0xbb006555, 0xbb402555, 0xbb704555, 0xbb200555, 0xbbb00355, 0xbbb00855
  dc32 0x555a6277, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x77226333, 0x55555533, 0x55555553, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x33333333, 0x33333333, 0x33333333, 0x55535555, 0x55555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55531112, 0x55531112, 0x55531112, 0x55531112, 0x55531112, 0x55331112, 0x5533111b, 0x55311111
  dc32 0x43555555, 0x43555555, 0x73555555, 0x93555555, 0x23355555, 0x23355555, 0xb3355555, 0x33355555
  dc32 0x53333320, 0x55555370, 0x55555304, 0x55555304, 0x55555807, 0x55555202, 0x5555320b, 0x5555340b
  dc32 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0xbbbb1111, 0xbbb11111, 0xbbb11111, 0xbbb11111, 0xbbb11111, 0xbbb11111, 0xbb111111, 0xbb111111
  dc32 0x11111333, 0x11111333, 0x11111333, 0x11113333, 0x11113333, 0x11113333, 0x11133333, 0x11133333
  dc32 0x35555555, 0x35555555, 0x35555555, 0x35555555, 0x35555555, 0x55555555, 0x55555555, 0x55555555
  dc32 0x55530266, 0x55530266, 0x55530666, 0x55530666, 0x55530666, 0x55510266, 0x55530266, 0x55530266
  dc32 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666
  dc32 0x666aaaa6, 0x666aaaa6, 0x666aaaa6, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666
  dc32 0x33a3aaaa, 0x33333aaa, 0x3333333a, 0x3333333a, 0x33333333, 0x33333333, 0x33333333, 0x33333333
  dc32 0xa2055555, 0xa2035555, 0xa6035555, 0xaa065555, 0xa3025555, 0xaa075555, 0xaa445555, 0xaa945555
  dc32 0x31111111, 0x31111111, 0x31111111, 0x31111111, 0x31111111, 0x31111111, 0x33111111, 0x33111111
  dc32 0x1bbbbbbb, 0x1bbbbbbb, 0x1bbbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb
  dc32 0xbbb40255, 0xbbb70755, 0xbbbb0455, 0xbbbb0035, 0xbbbb4035, 0xbbbb2035, 0xbbbb20b5, 0xbbbb2023
  dc32 0x55311111, 0x55311111, 0x55311118, 0x55331112, 0x553311b4, 0x55531124, 0x55531127, 0x55531172
  dc32 0x33355555, 0x33355555, 0x33355555, 0x33355555, 0x33555555, 0x33555555, 0x33555555, 0x33555555
  dc32 0x5555344b, 0x5555304b, 0x5553104b, 0x5553b02b, 0x5553202b, 0x5553202b, 0x555340bb, 0x555344bb
  dc32 0xbb111111, 0xbb111111, 0xbb111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111, 0xb1111111
  dc32 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333
  dc32 0x55530266, 0x55530266, 0x55530266, 0x55530266, 0x55530266, 0x55530266, 0x55530266, 0x55530266
  dc32 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66aaaa66, 0x66aaaaa6, 0x6aaaaaaa, 0x6aaaaaaa
  dc32 0x3333333a, 0x3333333a, 0x333333aa, 0x33333aaa, 0x33aaaaaa, 0x555555a5, 0x555555a5, 0x555555a5
  dc32 0xa5205555, 0xa5203555, 0xa5603555, 0x55a01555, 0x55a06555, 0x55502555, 0x55547555, 0xa5594555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555553, 0x55555553, 0x55555555
  dc32 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111, 0x33111111
  dc32 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x11bbbbbb, 0x1bbbbbbb, 0x1bbbbbbb, 0xbbbbbbb2
  dc32 0xbbbb2023, 0xbbbb2023, 0xbbbb2023, 0xbbbbb073, 0xbbbbb073, 0xbbb24023, 0xb2400025, 0x40072075
  dc32 0x55531142, 0x5553114b, 0x55531101, 0x55531101, 0x55531101, 0x55531b03, 0x55531b43, 0x55531243
  dc32 0x555304bb, 0x553107bb, 0x553b02bb, 0x553202bb, 0x553202bb, 0x55340bbb, 0x55340274, 0x55300000
  dc32 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0x44444722, 0x44400000
  dc32 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0x22bbbbbb, 0x442bbb
  dc32 0xb1111111, 0xb1111111, 0xb1111111, 0xbb111111, 0xbbb11111, 0xbbbbb111, 0xbbbbb111, 0xbbbbbbb1
  dc32 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11133333, 0x11113333, 0x11113333
  dc32 0x55510266, 0x55560666, 0x55560666, 0x555606aa, 0x555606aa, 0x55520aaa, 0x55520aaa, 0x55574aaa
  dc32 0x66666666, 0x6666666a, 0x666a6aaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaa6666, 0xaaa66666, 0xaa666666
  dc32 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x66aaaaaa, 0x666aaaaa, 0x6666aaaa
  dc32 0x5555aaaa, 0x555aaaaa, 0x55aaaaaa, 0x5aaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaa33
  dc32 0xaaa20355, 0xaaa60355, 0xaaa60155, 0xaaaa0655, 0xaaaa0255, 0xaaaa4755, 0xaaaa4455, 0x3aaa7455
  dc32 0x55555553, 0x55555553, 0x55555555, 0x55555555, 0x55555555, 0x55555553, 0x55555553, 0x55555533
  dc32 0x33111111, 0x3311111b, 0x3311111b, 0x331111bb, 0x31111bbb, 0x31111bbb, 0x1111bbbb, 0x1111bbb4
  dc32 0xbbbbbb20, 0xbbbbb704, 0xbbbb4072, 0xbbb407bb, 0xbb002bbb, 0xb402bbbb, 0x2bbbbb, 0x2bbbbbb
  dc32 0x72bb445, 0x2bbbb403, 0xbbbbb403, 0xbbbbb703, 0xbbbbb701, 0xbbbbb201, 0xbbbbb20b, 0xbbbbb20b
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x53333355, 0x33333335
  dc32 0x55531243, 0x55531243, 0x55331243, 0x55331773, 0x55331423, 0x55331423, 0x55331423, 0x55311423
  dc32 0x33555555, 0x33555555, 0x33555555, 0x33555555, 0x33355555, 0x33355555, 0x33355555, 0x33355555
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555533
  dc32 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x35555555
  dc32 0x5530422b, 0x55107bbb, 0x53b02bbb, 0x53202bbb, 0x5320bbbb, 0x5344bbbb, 0x5304bbbb, 0x5104bbbb
  dc32 0xbbbbbb22, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0x74400042, 0xbbbb2400, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb, 0xbbbbbbbb
  dc32 0xbbbbbbbb, 0x42bbbbb, 0x70042bbb, 0xbb24042b, 0xbbbb2404, 0xbb111120, 0xb111111b, 0x11111111
  dc32 0x11111333, 0xb1111333, 0xb1111133, 0xb1111133, 0x11111113, 0x4b111113, 0x40b11111, 0x14411111
  dc32 0x55555555, 0x55555555, 0x35555555, 0x35555555, 0x33555555, 0x33333555, 0x33333333, 0x33333333
  dc32 0x55547aaa, 0x55502aaa, 0x55306aa6, 0x55306aaa, 0x55306aaa, 0x5560aaaa, 0x3520aaaa, 0x3324aaaa
  dc32 0xaa666666, 0xa6666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0x66666666, 0xa6666666
  dc32 0x6666aaaa, 0x66666aaa, 0x66666aaa, 0x6666666a, 0x66666666, 0x66666666, 0x66666666, 0x66622222


.align 32
  dc32 1120   ; ImageJava_image.length
_ImageJava_image:
  dw 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0003
  dw 0x0004, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0005
  dw 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0007, 0x0001, 0x0001, 0x0001, 0x0008
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0009
  dw 0x000a, 0x000b, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x000c, 0x000d, 0x0001, 0x000e, 0x0001, 0x0001, 0x0001, 0x000f
  dw 0x0001, 0x0001, 0x0001, 0x0010, 0x0011, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0012, 0x0013, 0x0014
  dw 0x0015, 0x0016, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0017
  dw 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x0001, 0x0001, 0x001d
  dw 0x0001, 0x0001, 0x0001, 0x001e, 0x001f, 0x0020, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0021, 0x0022, 0x0023, 0x0024, 0x0001, 0x0025, 0x0026, 0x0027
  dw 0x0028, 0x0029, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x002a
  dw 0x002b, 0x002c, 0x002d, 0x002e, 0x0001, 0x0001, 0x0001, 0x002f
  dw 0x0001, 0x0001, 0x0001, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x0027
  dw 0x003b, 0x003c, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x003d, 0x003e, 0x003f, 0x0040, 0x0001, 0x0001, 0x0001, 0x0041
  dw 0x0001, 0x0001, 0x0001, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046
  dw 0x0047, 0x0048, 0x0049, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x0027, 0x0027
  dw 0x004f, 0x0050, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0001, 0x0057
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0058, 0x0059, 0x005a, 0x005b
  dw 0x005c, 0x005d, 0x005e, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0027, 0x0027
  dw 0x0064, 0x0065, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b
  dw 0x0001, 0x0001, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071
  dw 0x0072, 0x0073, 0x0074, 0x0075, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0027, 0x0027
  dw 0x007b, 0x004f, 0x007c, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x007d, 0x004f, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082
  dw 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a
  dw 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092
  dw 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a
  dw 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2
  dw 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa
  dw 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2
  dw 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba
  dw 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2
  dw 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca
  dw 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2
  dw 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da
  dw 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2
  dw 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea
  dw 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2
  dw 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa
  dw 0x004f, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0100, 0x0101
  dw 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0106, 0x0106, 0x0107
  dw 0x0108, 0x0109, 0x010a, 0x010b, 0x010c, 0x010d, 0x010e, 0x010f
  dw 0x0110, 0x0111, 0x0112, 0x0113, 0x0114, 0x0106, 0x0106, 0x0106
  dw 0x0115, 0x0116, 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011c
  dw 0x004f, 0x011d, 0x011e, 0x011f, 0x0120, 0x0121, 0x0122, 0x0123
  dw 0x0124, 0x0125, 0x0126, 0x0106, 0x0127, 0x0128, 0x0129, 0x012a
  dw 0x0106, 0x0106, 0x012b, 0x012c, 0x012d, 0x012e, 0x012f, 0x0130
  dw 0x0131, 0x0132, 0x0133, 0x0134, 0x0135, 0x0136, 0x0106, 0x0106
  dw 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x0027
  dw 0x004f, 0x013e, 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144
  dw 0x0145, 0x0146, 0x0147, 0x0106, 0x0148, 0x0149, 0x014a, 0x014b
  dw 0x0106, 0x0106, 0x014c, 0x014d, 0x014e, 0x014f, 0x0150, 0x0151
  dw 0x0152, 0x0153, 0x0154, 0x0155, 0x0156, 0x0157, 0x0158, 0x0159
  dw 0x015a, 0x015b, 0x015c, 0x015d, 0x015e, 0x015f, 0x0160, 0x0161
  dw 0x0162, 0x004f, 0x0163, 0x0164, 0x0165, 0x0166, 0x0167, 0x0168
  dw 0x0169, 0x016a, 0x016b, 0x0106, 0x016c, 0x016d, 0x016e, 0x016f
  dw 0x0106, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x0175, 0x0176
  dw 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x017e
  dw 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0027
  dw 0x0186, 0x0187, 0x0188, 0x0189, 0x0106, 0x018a, 0x018b, 0x018c
  dw 0x018d, 0x018e, 0x018f, 0x0190, 0x0191, 0x0192, 0x0193, 0x0194
  dw 0x0195, 0x0196, 0x0197, 0x0001, 0x0198, 0x0001, 0x0199, 0x019a
  dw 0x019b, 0x019c, 0x019d, 0x019e, 0x019f, 0x01a0, 0x01a1, 0x01a2
  dw 0x01a3, 0x01a4, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x01a9, 0x0027
  dw 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x01af, 0x01b0, 0x01b1
  dw 0x01b2, 0x0106, 0x01b3, 0x01b4, 0x01b5, 0x01b6, 0x01b7, 0x01b8
  dw 0x01b9, 0x01ba, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x01bb
  dw 0x01bc, 0x01bd, 0x01be, 0x01bf, 0x01c0, 0x01c1, 0x01c2, 0x01c3
  dw 0x01c4, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 0x01ca, 0x01cb
  dw 0x01cc, 0x01cd, 0x01ce, 0x01cf, 0x01d0, 0x01d1, 0x01d2, 0x01d3
  dw 0x01d4, 0x01d5, 0x01d6, 0x01d7, 0x01d8, 0x01d9, 0x01da, 0x01db
  dw 0x01dc, 0x01dd, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x01de, 0x01df, 0x01e0, 0x01e1, 0x01e2, 0x01e3, 0x01e4, 0x01e5
  dw 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea, 0x01eb, 0x01ec, 0x01ed
  dw 0x01ee, 0x0051, 0x01ef, 0x01f0, 0x01f1, 0x01f2, 0x01f3, 0x01f4
  dw 0x01f5, 0x01f6, 0x01f7, 0x01f8, 0x01f9, 0x01fa, 0x01fb, 0x01fc
  dw 0x01fd, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x01fe, 0x01ff, 0x0200, 0x0201, 0x0202, 0x0203
  dw 0x0204, 0x0205, 0x0027, 0x0206, 0x0207, 0x0208, 0x0209, 0x020a
  dw 0x020b, 0x0001, 0x020c, 0x020d, 0x020e, 0x020f, 0x0210, 0x0211
  dw 0x0212, 0x0213, 0x0214, 0x0215, 0x0216, 0x0217, 0x0218, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0219, 0x021a, 0x021b, 0x021c, 0x021d
  dw 0x021e, 0x021f, 0x0220, 0x004f, 0x0221, 0x0222, 0x0223, 0x0224
  dw 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, 0x022b, 0x022c
  dw 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0233, 0x0234, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0235, 0x0236, 0x0237
  dw 0x0238, 0x0239, 0x023a, 0x004f, 0x023b, 0x023c, 0x023d, 0x023e
  dw 0x023f, 0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246
  dw 0x0247, 0x0248, 0x0249, 0x024a, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x024b, 0x024c, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x024d, 0x024e, 0x024f
  dw 0x0250, 0x0251, 0x0252, 0x004f, 0x0253, 0x0254, 0x0255, 0x0256
  dw 0x0257, 0x0258, 0x0001, 0x01bc, 0x0259, 0x025a, 0x025b, 0x025c
  dw 0x025d, 0x025e, 0x0232, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x025f, 0x0260, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0261, 0x0262
  dw 0x0262, 0x0263, 0x0264, 0x004f, 0x0265, 0x0266, 0x0267, 0x0268
  dw 0x0269, 0x026a, 0x0001, 0x004f, 0x026b, 0x026c, 0x026d, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x026e, 0x026f, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0270, 0x0262
  dw 0x0262, 0x0271, 0x0272, 0x004f, 0x0001, 0x0273, 0x0267, 0x0274
  dw 0x0275, 0x0276, 0x0277, 0x004f, 0x0278, 0x0279, 0x027a, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x027b, 0x0207, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x027c, 0x027d
  dw 0x027e, 0x027f, 0x0280, 0x004f, 0x0001, 0x0281, 0x0282, 0x0283
  dw 0x0284, 0x0285, 0x0286, 0x004f, 0x0287, 0x0288, 0x0289, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x028a, 0x0001, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x0001, 0x0001, 0x028b, 0x028c, 0x0001, 0x0001, 0x0001
  dw 0x0001, 0x028d, 0x028e, 0x0001, 0x0001, 0x0001, 0x028f, 0x0290
  dw 0x0291, 0x0292, 0x0293, 0x004f, 0x0294, 0x0295, 0x0296, 0x0297


.align 32
  dc32 16   ; ImageJava_palette.length
_ImageJava_palette:
  dw 0x0024, 0x06ae, 0x0468, 0x08ae, 0x0246, 0x0cce, 0x088a, 0x0248
  dw 0x06ac, 0x0646, 0x0aaa, 0x068c, 0x0222, 0x0224, 0x0002, 0x0000


ImageJava_run:
  movea.l #ImageJava_palette, a2
  move.l (a2), d0
  movea.l d0, a3
  jsr (_set_palette_colors).l
  movea.l #ImageJava_pattern, a2
  move.l (a2), d0
  movea.l d0, a3
  moveq.l #0, d7
  jsr (_set_pattern_table).l
  movea.l #ImageJava_image, a2
  move.l (a2), d0
  movea.l d0, a3
  jsr (_set_image_data).l
  rts

  ; VDP register initialization (24 bytes)
.align 32
vdp_reg_init_table:
  dc.b  0x04  ; reg  0 = mode reg 1: no H interrupt
  dc.b  0x14  ; reg  1 = mode reg 2: blanked, no V interrupt, DMA enable
  dc.b  0x38  ; reg  2 = name table base for scroll A: 0xe000
  dc.b  0x3c  ; reg  3 = name table base for window:   0xf000
  dc.b  0x06  ; reg  4 = name table base for scroll B: 0xc000
  dc.b  0x6c  ; reg  5 = sprite attribute table base: 0xd800
  dc.b  0x00  ; reg  6 = unused register: 0x00
  dc.b  0x00  ; reg  7 = background color: 0x00
  dc.b  0x00  ; reg  8 = unused register: 0x00
  dc.b  0x00  ; reg  9 = unused register: 0x00
  dc.b  0xff  ; reg 10 = H interrupt register: 0xFF (esentially off)
  dc.b  0x03  ; reg 11 = mode reg 3: disable ext int, full H/V scroll
  dc.b  0x81  ; reg 12 = mode reg 4: 40 cell horiz mode, no interlace
  dc.b  0x3f  ; reg 13 = H scroll table base: 0xfc00
  dc.b  0x00  ; reg 14 = unused register: 0x00
  dc.b  0x02  ; reg 15 = auto increment: 0x02
  dc.b  0x01  ; reg 16 = scroll size: V=32 cell, H=64 cell
  dc.b  0x00  ; reg 17 = window H position: 0x00
  dc.b  0x00  ; reg 18 = window V position: 0x00
  dc.b  0xff  ; reg 19 = DMA length count low:   0x00ff
  dc.b  0xff  ; reg 20 = DMA length count high:  0xffxx
  dc.b  0x00  ; reg 21 = DMA source address low: 0xxxxx00
  dc.b  0x00  ; reg 22 = DMA source address mid: 0xxx00xx
  dc.b  0x80  ; reg 23 = DMA source address high: VRAM fill, addr = 0x00xxxx

  ; PSG initialization: set all channels to minimum volume
psg_reg_init_table:
  dc.b  0x9f,0xbf,0xdf,0xff

_load_fonts:
  move.w #((fontend - font) / 4) - 1, d6
  move.l #0x4c000002, (a1)  ; C00004 VRAM write to 0x8c00
  movea.l #font, a2         ; Point to font set
_load_fonts_loop:
  move.l (a2)+, (a0)        ; C00000 write next longword of charset to VDP
  dbra d6, _load_fonts_loop ; loop until done
  rts

.align 32
font:
  dc32 0x01111100, 0x11000110, 0x11000110, 0x11000110 ; A
  dc32 0x11111110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x11111100, 0x11000110, 0x11000110, 0x11111100 ; B
  dc32 0x11000110, 0x11000110, 0x11111100, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000110, 0x11000000 ; C
  dc32 0x11000110, 0x11000110, 0x11111110, 0x00000000
  dc32 0x11111100, 0x11000110, 0x11000110, 0x11000110 ; D
  dc32 0x11000110, 0x11000110, 0x11111100, 0x00000000
  dc32 0x11111110, 0x11000000, 0x11000000, 0x11111100 ; E
  dc32 0x11000000, 0x11000000, 0x11111110, 0x00000000
  dc32 0x11111110, 0x11000000, 0x11000000, 0x11111100 ; F
  dc32 0x11000000, 0x11000000, 0x11000000, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000000, 0x11001110 ; G
  dc32 0x11000110, 0x11000110, 0x11111110, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11000110, 0x11111110 ; H
  dc32 0x11000110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x00111000, 0x00111000, 0x00111000, 0x00111000 ; I
  dc32 0x00111000, 0x00111000, 0x00111000, 0x00000000
  dc32 0x00000110, 0x00000110, 0x00000110, 0x00000110 ; J
  dc32 0x00000110, 0x01100110, 0x01111110, 0x00000000
  dc32 0x11000110, 0x11001100, 0x11111000, 0x11111000 ; K
  dc32 0x11001100, 0x11000110, 0x11000110, 0x00000000
  dc32 0x01100000, 0x01100000, 0x01100000, 0x01100000 ; L
  dc32 0x01100000, 0x01100000, 0x01111110, 0x00000000
  dc32 0x11000110, 0x11101110, 0x11111110, 0x11010110 ; M
  dc32 0x11000110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x11000110, 0x11100110, 0x11110110, 0x11011110 ; N
  dc32 0x11001110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000110, 0x11000110 ; O
  dc32 0x11000110, 0x11000110, 0x11111110, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000110, 0x11111110 ; P
  dc32 0x11000000, 0x11000000, 0x11000000, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000110, 0x11000110 ; Q
  dc32 0x11001110, 0x11001110, 0x11111110, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000110, 0x11111100 ; R
  dc32 0x11000110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x11111110, 0x11000110, 0x11000000, 0x11111110 ; S
  dc32 0x00000110, 0x11000110, 0x11111110, 0x00000000
  dc32 0x11111110, 0x00111000, 0x00111000, 0x00111000 ; T
  dc32 0x00111000, 0x00111000, 0x00111000, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11000110, 0x11000110 ; U
  dc32 0x11000110, 0x11000110, 0x11111110, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11000110, 0x11000110 ; V
  dc32 0x01101100, 0x00111000, 0x00010000, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11000110, 0x11010110 ; W
  dc32 0x11111110, 0x11101110, 0x11000110, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11101110, 0x01111100 ; X
  dc32 0x11101110, 0x11000110, 0x11000110, 0x00000000
  dc32 0x11000110, 0x11000110, 0x11000110, 0x01101100 ; Y
  dc32 0x00111000, 0x00111000, 0x00111000, 0x00000000
  dc32 0x11111110, 0x00001110, 0x00011100, 0x00111000 ; Z
  dc32 0x01110000, 0x11100000, 0x11111110, 0x00000000
  dc32 0x00000000, 0x00000000, 0x00000000, 0x00000000 ; ' '
  dc32 0x00000000, 0x00000000, 0x00000000, 0x00000000
fontend:

_clear_text:
  move.w #(64 * 32 / 2) - 1, d6
  move.l #0x60000003, (a1)  ; C00004 VRAM write to 0xe000
  move.l #((1120 + (']' - 'A')) << 16) | (1120 + (']' - 'A')), d7
_clear_text_loop:
  move.l d7, (a0)           ; C00000 write next longword of ' ' to VDP
  dbra d6, _clear_text_loop ; loop until done
  rts

_set_pattern_table:
  lsl.l #5, d7               ; pattern_index * 32
  move.l d7, d5
  rol.w #2, d5
  and.w #3, d5               ; d5 = upper 2 bits moved to lower 2 bits
  and.w #0x3ffe, d7          ; d7 = lower 13 bits
  or.w #0x4000, d7
  swap d7
  or.w d5, d7
  move.l d7, (a1)
  move.l (-4,a3), d5         ; Code len
  subq.l #1, d5
_set_pattern_table_loop:
  move.l (a3)+, (a0)
  dbf d5, _set_pattern_table_loop
  rts

_set_image_data:
  move.l #0x40000003, d7     ; Set cursor position in VDP
  move.l d7, (a1)
  move.l (-4,a3), d5         ; Code len
  eor.w d6, d6
_set_image_data_loop:
  move.w (a3)+, (a0)
  add.w #1, d6
  cmp.w #40, d6
  bne.s _set_image_data_not_40
  eor.w d6, d6
  add.l #0x00800000, d7
  move.l d7, (a1)
_set_image_data_not_40:
  dbf d5, _set_image_data_loop
  rts

_set_palette_colors:
  move.l #0xc0000000, (a1)   ; C00004 write CRAM address 0x0000
  move.l (-4,a3), d5         ; Code len
_set_palette_colors_loop:
  move.w (a3)+, (a0)
  dbf d5, _set_palette_colors_loop
  rts

_set_palette_colors_at_index:
  lsl.w #1, d0
  swap d0
  add.l #0xc0000000, d0
  move.l d0, (a1)   ; C00004 write CRAM address d0 * 2
  move.l (-4,a3), d5         ; Code len
_set_palette_colors_at_index_loop:
  move.w (a3)+, (a0)
  dbf d5, _set_palette_colors_at_index_loop
  rts


